]> granicus.if.org Git - postgresql/commitdiff
Return error if allocation of new element was not possible.
authorMichael Meskes <meskes@postgresql.org>
Sun, 8 Sep 2013 10:59:43 +0000 (12:59 +0200)
committerMichael Meskes <meskes@postgresql.org>
Sun, 8 Sep 2013 11:13:13 +0000 (13:13 +0200)
Found by Coverity.

src/interfaces/ecpg/pgtypeslib/numeric.c

index 7257c812542a9de3e3a817e3263bc75a290bb93e..55c5b45616ea49fc44fe6089bc4353a22a674b25 100644 (file)
@@ -430,14 +430,18 @@ PGTYPESnumeric_to_asc(numeric *num, int dscale)
        numeric    *numcopy = PGTYPESnumeric_new();
        char       *s;
 
-       if (dscale < 0)
-               dscale = num->dscale;
+       if (numcopy == NULL)
+               return NULL;
 
        if (PGTYPESnumeric_copy(num, numcopy) < 0)
        {
                PGTYPESnumeric_free(numcopy);
                return NULL;
        }
+
+       if (dscale < 0)
+               dscale = num->dscale;
+
        /* get_str_from_var may change its argument */
        s = get_str_from_var(numcopy, dscale);
        PGTYPESnumeric_free(numcopy);
@@ -1520,6 +1524,9 @@ numericvar_to_double(numeric *var, double *dp)
        char       *endptr;
        numeric    *varcopy = PGTYPESnumeric_new();
 
+       if (varcopy == NULL)
+               return -1;
+
        if (PGTYPESnumeric_copy(var, varcopy) < 0)
        {
                PGTYPESnumeric_free(varcopy);