Hi all,

I was just looking through libpq large object code an noticed what seemed
to be a bug. The function lo_create() is declared as Oid yet it contains
the following code:

    if (conn->lobjfuncs == (PGlobjfuncs *) NULL)
    {
        if (lo_initialize(conn) < 0)
            return -1;
    }

If lo_initialize returns < 0, you have some pretty serious problems - out
of memory, conn is invalid, etc. However, casting -1 to Oid returns what
seems to be a valid Oid. Shouldn't it return InvalidOid?

Gavin




---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to