--- install.c.old 2009-01-29 05:08:01.000000000 -0800 +++ install.c 2010-08-02 12:59:26.000000000 -0700 @@ -2364,13 +2364,18 @@ line = strdup(string); /* so we can change it */ keyname = strchr(line, '['); - if (!keyname) + if (!keyname) { + free(line); return; + } ++keyname; subkeyname = strchr(keyname, ']'); - if (!subkeyname) + if (!subkeyname) { + free(line); return; + } + *subkeyname++='\0'; delim = strchr(subkeyname, '\n'); if (delim) @@ -2406,16 +2411,22 @@ /* Format is 'Reg DB Value: [key]name=value' */ keyname = strchr(line, '['); - if (!keyname) + if (!keyname) { + free(line); return; + } ++keyname; valuename = strchr(keyname, ']'); - if (!valuename) + if (!valuename) { + free(line); return; + } *valuename++ = '\0'; value = strchr(valuename, '='); - if (!value) + if (!value) { + free(line); return; + } *value++ = '\0';