updates
[silc.git] / apps / irssi / src / silc / core / clientutil.c
index bd5594844df71947ae51bf7b23b455e461de630f..b6480e6abc3e9d1e871b749a96fb536e67cd2e85 100644 (file)
@@ -303,14 +303,16 @@ int silc_client_check_silc_dir()
   memset(file_public_key, 0, sizeof(file_public_key));
   memset(file_private_key, 0, sizeof(file_private_key));
 
+  identifier = silc_client_create_identifier();
+
   pw = getpwuid(getuid());
   if (!pw) {
     fprintf(stderr, "silc: %s\n", strerror(errno));
+    if (identifier)
+      silc_free(identifier);
     return FALSE;
   }
 
-  identifier = silc_client_create_identifier();
-
   /* We'll take home path from /etc/passwd file to be sure. */
   snprintf(filename, sizeof(filename) - 1, "%s/.silc/", pw->pw_dir);
   snprintf(servfilename, sizeof(servfilename) - 1, "%s/.silc/serverkeys",