silcnet: handle OOM situation gracefully
authorPekka Riikonen <priikone@silcnet.org>
Wed, 28 May 2014 10:55:46 +0000 (13:55 +0300)
committerPekka Riikonen <priikone@silcnet.org>
Wed, 28 May 2014 10:55:46 +0000 (13:55 +0300)
lib/silcutil/silcnet.c

index 60a8a47730407ed24698aa1998bd42a573031b72..e2f7e23939791b79e56a9aba700144b3f9da3ce1 100644 (file)
@@ -447,8 +447,11 @@ SilcBool silc_net_check_host_by_sock(SilcSocket sock, char **hostname,
     if (!ip || !silc_net_gethostbyaddr(*ip, host, sizeof(host)))
       return FALSE;
 
+    SILC_LOG_DEBUG(("Resolved hostname `%s'", host));
+
     *hostname = silc_memdup(host, strlen(host));
-    SILC_LOG_DEBUG(("Resolved hostname `%s'", *hostname));
+    if (!(*hostname))
+      return FALSE;
 
     /* Reverse */
     if (!silc_net_gethostbyname(*hostname, TRUE, host, sizeof(host)))
@@ -533,8 +536,11 @@ SilcBool silc_net_check_local_by_sock(SilcSocket sock, char **hostname,
     if (!ip || !silc_net_gethostbyaddr(*ip, host, sizeof(host)))
       return FALSE;
 
+    SILC_LOG_DEBUG(("Resolved hostname `%s'", host));
+
     *hostname = silc_memdup(host, strlen(host));
-    SILC_LOG_DEBUG(("Resolved hostname `%s'", *hostname));
+    if (!(*hostname))
+      return FALSE;
 
     /* Reverse */
     if (!silc_net_gethostbyname(*hostname, TRUE, host, sizeof(host)))