Fix some minor infelicities in ecpg's pgtypeslib: (1) `pstr' must be
authorNeil Conway
Fri, 1 Jul 2005 05:12:06 +0000 (05:12 +0000)
committerNeil Conway
Fri, 1 Jul 2005 05:12:06 +0000 (05:12 +0000)
non-NULL in this function, so there is no need to check for it (2) we
should check the return value of pgtypes_strdup(). Patch from Eric
Astor at EnterpriseDB, with slight cleanup by myself, per a report
from the Coverity tool.

src/interfaces/ecpg/pgtypeslib/dt_common.c

index cc0170966ca642db67981c9bb8b338b3d23954f4..b412c1b8ec21d0b8e6c6b073ed5fad8624a0f13e 100644 (file)
@@ -2669,8 +2669,7 @@ pgtypes_defmt_scan(union un_fmt_comb * scan_val, int scan_type, char **pstr, cha
    if (!pstr_end)
    {
        /* there was an error, no match */
-       err = 1;
-       return err;
+       return 1;
    }
    last_char = *pstr_end;
    *pstr_end = '\0';
@@ -2699,8 +2698,10 @@ pgtypes_defmt_scan(union un_fmt_comb * scan_val, int scan_type, char **pstr, cha
                err = 1;
            break;
        case PGTYPES_TYPE_STRING_MALLOCED:
-           if (pstr)
-               scan_val->str_val = pgtypes_strdup(*pstr);
+           scan_val->str_val = pgtypes_strdup(*pstr);
+           if (scan_val->str_val == NULL)
+               err = 1;
+           break;
    }
    if (strtol_end && *strtol_end)
        *pstr = strtol_end;