--- 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;