Potential use of uninitialized context in pgcrypto - Mailing list pgsql-hackers

From Daniel Gustafsson
Subject Potential use of uninitialized context in pgcrypto
Date
Msg-id AA8D6FE9-4AB2-41B4-98CB-AE64BA668C03@yesql.se
Whole thread Raw
Responses Re: Potential use of uninitialized context in pgcrypto  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
In px_crypt_md5() we have this section, with the second assignment to err being
unchecked:

   /* */
   err = px_find_digest("md5", &ctx);
   if (err)
       return NULL;
   err = px_find_digest("md5", &ctx1);

Even though we know that the digest algorithm exists when we reach the second
call, we must check the returnvalue from each call to px_find_digest to handle
allocation errors.  Depending on which lib is backing pgcrypto, px_find_digest
may perform resource allocation which can fail on the subsequent call.  It does
fall in the not-terrible-likely-to-happen category but there is a non-zero risk
which would lead to using a broken context.  The attached checks the err
returnvalue and exits in case it indicates an error.

cheers ./daniel



Attachment

pgsql-hackers by date:

Previous
From: Kyotaro Horiguchi
Date:
Subject: Re: Feature improvement for pg_stat_statements
Next
From: Amit Langote
Date:
Subject: Re: partition routing layering in nodeModifyTable.c