The following bug has been logged on the website:

Bug reference:      6700
Logged by:          Ken Cheung
Email address:      msrbugzi...@gmail.com
PostgreSQL version: Unsupported/Unknown
Operating system:   Linux
Description:        

I observed a code clone in the following files. In the function
PGTYPESnumeric_copy, the variable dst is ensured to be not NULL before
passing to zero_var(). However, the function PGTYPESnumeric_from_decimal
does not perform this checking. It will cause an exception when dst is NULL
and passed to zero_var().

function : PGTYPESnumeric_copy @ (file:
"postgresql-9.2beta2/src/interfaces/ecpg/pgtypeslib/numeric.c", line:
1476)~1491
        if (dst == NULL)
                return -1;
        zero_var(dst);

        dst->weight = src->weight;
        dst->rscale = src->rscale;
        dst->dscale = src->dscale;
        dst->sign = src->sign;

        if (alloc_var(dst, src->ndigits) != 0)
                return -1;

        for (i = 0; i < src->ndigits; i++)
                dst->digits[i] = src->digits[i];

        return 0;

function : PGTYPESnumeric_from_decimal @ (file:
"postgresql-9.2beta2/src/interfaces/ecpg/pgtypeslib/numeric.c", line:
1650)~1663
        zero_var(dst);

        dst->weight = src->weight;
        dst->rscale = src->rscale;
        dst->dscale = src->dscale;
        dst->sign = src->sign;

        if (alloc_var(dst, src->ndigits) != 0)
                return -1;

        for (i = 0; i < src->ndigits; i++)
                dst->digits[i] = src->digits[i];

        return 0;


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to