From 945584c3108f01fa6742b614fe3c27f894db5dc0 Mon Sep 17 00:00:00 2001 From: Cary R Date: Mon, 28 Jul 2014 10:45:01 -0700 Subject: [PATCH] Fix memory leak in VAMS $simparam$str call. --- vpi/vams_simparam.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vpi/vams_simparam.c b/vpi/vams_simparam.c index 93ec7024e..6d5e8b30d 100644 --- a/vpi/vams_simparam.c +++ b/vpi/vams_simparam.c @@ -225,7 +225,7 @@ static PLI_INT32 simparam_str_calltf(ICARUS_VPI_CONST PLI_BYTE8 *name_ext) retval = strdup(vpi_get_str(vpiFullName, vpi_handle(vpiScope,callh))); } else { - if (defval == 0) { + if (defval == NULL) { vpi_printf("ERROR: %s:%d: ", vpi_get_str(vpiFile, callh), (int)vpi_get(vpiLineNo, callh)); vpi_printf("$simparam%s unknown parameter name \"%s\".\n", @@ -241,6 +241,7 @@ static PLI_INT32 simparam_str_calltf(ICARUS_VPI_CONST PLI_BYTE8 *name_ext) val.format = vpiStringVal; val.value.str = retval; vpi_put_value(callh, &val, 0, vpiNoDelay); + if (defval != retval) free(defval); free(retval); return 0;