Re: unsafe use of hash_search(... HASH_ENTER ...) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: unsafe use of hash_search(... HASH_ENTER ...)
Date
Msg-id 10592.1117165213@sss.pgh.pa.us
Whole thread Raw
In response to unsafe use of hash_search(... HASH_ENTER ...)  ("Qingqing Zhou" <zhouqq@cs.toronto.edu>)
List pgsql-hackers
"Qingqing Zhou" <zhouqq@cs.toronto.edu> writes:
> In md.c/RememberFsyncRequest():

>  if (hash_search(pendingOpsTable, &entry, HASH_ENTER, NULL) == NULL)
>   ereport(FATAL,
>     (errcode(ERRCODE_OUT_OF_MEMORY),
>      errmsg("out of memory")));

> pendingOpsTable uses "MdCxt" to allocate memory. So if "out of memory", we
> actually have no chance to raise the error level to FATAL. A quick fix is to
> use malloc() HASH_ALLOC method for pendingOpsTable.

"Unsafe" is a bit of an overstatement, when you evidently haven't
analyzed the consequences of either choice of error level.  That is,
why is this a bug?
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Qingqing Zhou"
Date:
Subject: unsafe use of hash_search(... HASH_ENTER ...)
Next
From: "Qingqing Zhou"
Date:
Subject: Re: unsafe use of hash_search(... HASH_ENTER ...)