NULL as err_format parametr in set_error()
authorMarcel Poul <marcel.poul@cern.ch>
Tue, 14 Feb 2012 12:28:43 +0000 (12:28 +0000)
committerMarcel Poul <marcel.poul@cern.ch>
Tue, 14 Feb 2012 12:28:43 +0000 (12:28 +0000)
emi.canl.canl-c/src/canl_err.c

index f273d8f..c316c85 100644 (file)
@@ -35,8 +35,8 @@ canl_err_code update_error (glb_ctx *cc, unsigned long err_code,
     }
     va_end(ap);
 
-    ret = resolve_error_code(cc, err_code, err_orig);
 wo_msg:
+    ret = resolve_error_code(cc, err_code, err_orig);
     update_error_msg(cc, new_msg);
     if (new_msg)
         free(new_msg);
@@ -59,6 +59,10 @@ canl_err_code set_error (glb_ctx *cc, unsigned long err_code,
     if (cc->err_msg)
         reset_error(cc, err_code);
 
+    if (err_format == NULL || err_format[0] == '\0') {
+        goto wo_msg;
+    }
+
     /* make new message */
     va_start(ap, err_format);
     err_format_len = vasprintf(&new_msg, err_format, ap);
@@ -66,13 +70,15 @@ canl_err_code set_error (glb_ctx *cc, unsigned long err_code,
         va_end(ap);
         return EINVAL;
     }
+    va_end(ap);
 
+wo_msg:
     ret = resolve_error_code(cc, err_code, err_orig);
     update_error_msg(cc, new_msg);
-    free(new_msg);
-    va_end(ap);
+    if (new_msg)
+        free(new_msg);
 
-    if (!err_code)
+    if (!err_code) //TODO ???
         return 0;
     return ret;
 }