From 92600eeb7695cfd156f9bdbe6be854fb3ab45767 Mon Sep 17 00:00:00 2001 From: Corne' Cornelius Date: Thu, 27 Feb 2003 09:00:52 +0000 Subject: [PATCH] - MFH: Segfault in ifx_errormsg() --- ext/informix/ifx.ec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ext/informix/ifx.ec b/ext/informix/ifx.ec index e9b6bee65b..00fe0b6c3c 100644 --- a/ext/informix/ifx.ec +++ b/ext/informix/ifx.ec @@ -1652,13 +1652,12 @@ PHP_FUNCTION(ifx_errormsg) maxmsglen = 255; msglen = maxmsglen; /* Some bug fix, rgetlmsg doesnt always set the value */ - ifx_errmsg = (char *)malloc(maxmsglen + 1); + ifx_errmsg = (char *)emalloc(maxmsglen + 1); if (ifx_errorcode != 0) { rgetlmsg(ifx_errorcode, ifx_errmsg, maxmsglen, &msglen); if (msglen > maxmsglen) { - maxmsglen = msglen + 1; - free(ifx_errmsg); - ifx_errmsg = (char *)malloc(maxmsglen + 1); + maxmsglen = msglen; + ifx_errmsg = (char *)erealloc(ifx_errmsg, maxmsglen + 1); rgetlmsg(ifx_errorcode, ifx_errmsg, maxmsglen, &msglen); } } else { @@ -1667,7 +1666,7 @@ PHP_FUNCTION(ifx_errormsg) returnmsg = (char *) emalloc(strlen(ifx_errmsg) + 128); sprintf(returnmsg, ifx_errmsg, sqlca.sqlerrm); - free(ifx_errmsg); + efree(ifx_errmsg); RETURN_STRING(returnmsg,0); } /* }}} */ -- 2.40.0