X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fgetthreadid.c;h=abac78d74f2471c56c3049f7e30f460ee621e907;hb=HEAD;hp=41e3e22b9a488dca2c3b2d0b02b0b33b3527054f;hpb=1a1646dc54cace9984b36a1c12e1831d51fa89f1;p=mmh diff --git a/sbr/getthreadid.c b/sbr/getthreadid.c index 41e3e22..abac78d 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: @@ -52,8 +54,11 @@ threadid(char *msgid, char *referens) } start = strchr(threadfrom, '<'); + if (!start) { + return NULL; + } end = strchr(start, '>'); - if (!(*start) || !(*end)) { + if (!end) { return NULL; } *end = '\0';