X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fgetthreadid.c;h=a1ad7a0e99ab032bacd70ce2245655c7e3862c01;hp=99a7d67beb4db420331d7082c5c1a5d54bfbbcac;hb=b272c556cc930991994028c72ee487b38dada93c;hpb=3ec7019fb0a1c08f1c866f0a84fa75fe5b498596 diff --git a/sbr/getthreadid.c b/sbr/getthreadid.c index 99a7d67..a1ad7a0 100644 --- a/sbr/getthreadid.c +++ b/sbr/getthreadid.c @@ -14,15 +14,17 @@ getthreadid(const char *path) enum state state = FLD2; FILE *file = fopen(path, "r"); - while (state == FLD2 && !msgid && !referens) { + while (state == FLD2 && !(msgid && referens)) { switch (state = m_getfld2(state, &f, file)) { case FLD2: if (strncasecmp("message-id", f.name, f.namelen)==0) { msgid = f.value; f.value = NULL; + f.alloclen = 0; } else if (strncasecmp("references", f.name, f.namelen)==0) { referens = f.value; f.value = NULL; + f.alloclen = 0; } break; default: @@ -47,6 +49,9 @@ threadid(char *msgid, char *referens) char *cp; threadfrom = referens ? referens : msgid; + if (!threadfrom) { + return NULL; + } start = strchr(threadfrom, '<'); end = strchr(start, '>');