]> granicus.if.org Git - postgresql/commitdiff
Fix some minor infelicities in ecpg's pgtypeslib: (1) `pstr' must be
authorNeil Conway <neilc@samurai.com>
Fri, 1 Jul 2005 05:12:06 +0000 (05:12 +0000)
committerNeil Conway <neilc@samurai.com>
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;