Обсуждение: Possible memory leak/memory issue in pg_dump

Поиск
Список
Период
Сортировка

Possible memory leak/memory issue in pg_dump

От
Joe Tennant
Дата:
While browsing the code, "pg_dump.c" the following block *appears* to
be problematic. Additionally, there *appears* to be a malloc without a
free (return or assignment) in the function "getBlobs(Archive *AH)"
(pg_dump.c lines 2169 thru 2188 v9.1.4).

/*
 * Each large object has its own BLOB archive entry.
 */
binfo = (BlobInfo *) malloc(ntups * sizeof(BlobInfo));

for (i = 0; i < ntups; i++)
{
    binfo[i].dobj.objType = DO_BLOB;
    binfo[i].dobj.catId.tableoid = LargeObjectRelationId;
    binfo[i].dobj.catId.oid = atooid(PQgetvalue(res, i, 0));
    AssignDumpId(&binfo[i].dobj);

    binfo[i].dobj.name = strdup(PQgetvalue(res, i, 0));
    if (!PQgetisnull(res, i, 1))
        binfo[i].rolname = strdup(PQgetvalue(res, i, 1));
    else
        binfo[i].rolname = "";
    if (!PQgetisnull(res, i, 2))
        binfo[i].blobacl = strdup(PQgetvalue(res, i, 2));
    else
        binfo[i].blobacl = NULL;
}

Re: Possible memory leak/memory issue in pg_dump

От
Tom Lane
Дата:
Joe Tennant <joetennant@gmail.com> writes:
> While browsing the code, "pg_dump.c" the following block *appears* to
> be problematic. Additionally, there *appears* to be a malloc without a
> free (return or assignment) in the function "getBlobs(Archive *AH)"
> (pg_dump.c lines 2169 thru 2188 v9.1.4).

All those data structures are supposed to survive for the life of the
pg_dump run, so this isn't a leak.

            regards, tom lane