Fix potential access of freed data (only if we couldn't create the
[sgt/putty] / windows / winstore.c
index f454f17..743283f 100644 (file)
@@ -82,13 +82,14 @@ void *open_settings_w(const char *sessionname, char **errmsg)
        return NULL;
     }
     ret = RegCreateKey(subkey1, p, &sesskey);
-    sfree(p);
     RegCloseKey(subkey1);
     if (ret != ERROR_SUCCESS) {
         *errmsg = dupprintf("Unable to create registry key\n"
                             "HKEY_CURRENT_USER\\%s\\%s", puttystr, p);
+       sfree(p);
        return NULL;
     }
+    sfree(p);
     return (void *) sesskey;
 }