diff -r 30113bfbe723 -r b3afb9f1e801 daemon/listdomain.cc --- a/daemon/listdomain.cc Sun Jan 20 00:12:17 2008 +0100 +++ b/daemon/listdomain.cc Sun Jan 20 00:22:09 2008 +0100 @@ -53,15 +53,16 @@ if(!write_buf(fd, "", 0)) RETURN(err, "Failed while writing initial OK response"); - vpwentry entry; - while(reader->get(entry)) { - mystring code = entry.to_record(); - unsigned length = entry.name.length() + 1 + code.length() + 1; + vpwentry* entry; + while((entry = reader->get()) != 0) { + mystring code = entry->to_record(); + unsigned length = entry->name.length() + 1 + code.length(); char buf[length]; - memcpy(buf, entry.name.c_str(), entry.name.length()+1); - memcpy(buf+entry.name.length()+1, code.c_str(), code.length()+1); + memcpy(buf, entry->name.c_str(), entry->name.length()+1); + memcpy(buf+entry->name.length()+1, code.c_str(), code.length()); if(!write_buf(fd, buf, length)) RETURN(err, "Failed while writing list entry"); + delete entry; } delete reader;