about summary refs log tree commit diff
path: root/dlfcn/dlerror.c
diff options
context:
space:
mode:
Diffstat (limited to 'dlfcn/dlerror.c')
-rw-r--r--dlfcn/dlerror.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c
index 6ce601d05b..59ee0b8c54 100644
--- a/dlfcn/dlerror.c
+++ b/dlfcn/dlerror.c
@@ -46,7 +46,7 @@ static void free_key_mem (void *mem);
 char *
 dlerror (void)
 {
-  char *buf;
+  char *buf = NULL;
   struct dl_action_result *result;
 
   /* Get error string.  */
@@ -64,9 +64,8 @@ dlerror (void)
 	    free ((char *) result->errstring);
 	  result->errstring = NULL;
 	}
-      buf = NULL;
     }
-  else
+  else if (result->errstring != NULL)
     {
       buf = (char *) result->errstring;
       if (__asprintf (&buf, result->errcode != 0 ? "%s: %s: %s" : "%s: %s",