static size_t copyname(char *, char *);
static bool is_separator(char *);
+struct field free_field = { "\0", 0, NULL, 0, 0 };
+
/*
** FLD2: We read a (complete) header field
nchars = getline(&tmpline, &len, msg);
if (nchars < 1) {
free(f->value);
- *f = (struct field) { "\0", 0, NULL, 0, 0 };
+ *f = free_field;
if (feof(msg)) {
return FILEEOF2;
} else {
return ret;
case BODY2:
- *f->name = '\0';
- f->namelen = 0;
+ free(f->value);
+ *f = free_field;
nchars = getline(&tmpline, &len, msg);
if (nchars < 1) {
- free(f->value);
- f->value = NULL;
- f->valuelen = 0;
- f->alloclen = 0;
+ free(tmpline);
if (feof(msg)) {
return FILEEOF2;
} else {
ret = LENERR2;
}
- free(f->value);
f->value = tmpline;
f->valuelen = nchars;
f->alloclen = len;