Thread: Unnecessary pointer-NULL checks in pgp-pgsql.c
Hi all, Coverity is pointing out that we are doing pointer-NULL checks on things that cannot be NULL in decrypt_internal(): out: - if (src) - mbuf_free(src); - if (ctx) - pgp_free(ctx); + Assert(ctx != NULL && src != NULL && dst != NULL); + mbuf_free(src); + pgp_free(ctx); if (err) { px_set_debug_handler(NULL); - if (dst) - mbuf_free(dst); + mbuf_free(dst); src, dst and ctx are created respectively from mbuf_create_from_data, mbuf_create and pgp_init which never return NULL and they are palloc'd all the time. I think that we could simplify things with the patch attached, note that I added an assertion for correctness but I don't really think that it is much necessary. Regards, -- Michael
Attachment
On Sun, Feb 1, 2015 at 9:14 PM, Michael Paquier <michael.paquier@gmail.com> wrote: > Coverity is pointing out that we are doing pointer-NULL checks on > things that cannot be NULL in decrypt_internal(): > out: > - if (src) > - mbuf_free(src); > - if (ctx) > - pgp_free(ctx); > + Assert(ctx != NULL && src != NULL && dst != NULL); > + mbuf_free(src); > + pgp_free(ctx); > > if (err) > { > px_set_debug_handler(NULL); > - if (dst) > - mbuf_free(dst); > + mbuf_free(dst); > > src, dst and ctx are created respectively from mbuf_create_from_data, > mbuf_create and pgp_init which never return NULL and they are palloc'd > all the time. I think that we could simplify things with the patch > attached, note that I added an assertion for correctness but I don't > really think that it is much necessary. Yeah, I'd drop the assertion. Also, how about changing things around slightly so that we lose the goto-label construct? There's only one goto, and its only about 6 lines before the label, so we could just flip the sense of the if-test and put the code that gets skipped inside the if-block. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Robert Haas wrote: > I wrote: >> src, dst and ctx are created respectively from mbuf_create_from_data, >> mbuf_create and pgp_init which never return NULL and they are palloc'd >> all the time. I think that we could simplify things with the patch >> attached, note that I added an assertion for correctness but I don't >> really think that it is much necessary. > > Yeah, I'd drop the assertion. Also, how about changing things around > slightly so that we lose the goto-label construct? There's only one > goto, and its only about 6 lines before the label, so we could just > flip the sense of the if-test and put the code that gets skipped > inside the if-block. Good idea. This gives the patch attached then. Regards, -- Michael
Attachment
On Wed, Feb 4, 2015 at 7:00 AM, Michael Paquier <michael.paquier@gmail.com> wrote: > Robert Haas wrote: >> I wrote: >>> src, dst and ctx are created respectively from mbuf_create_from_data, >>> mbuf_create and pgp_init which never return NULL and they are palloc'd >>> all the time. I think that we could simplify things with the patch >>> attached, note that I added an assertion for correctness but I don't >>> really think that it is much necessary. >> >> Yeah, I'd drop the assertion. Also, how about changing things around >> slightly so that we lose the goto-label construct? There's only one >> goto, and its only about 6 lines before the label, so we could just >> flip the sense of the if-test and put the code that gets skipped >> inside the if-block. > Good idea. This gives the patch attached then. Committed. (BTW, why do you not leave a blank line between quoted text and your responses?) -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
* Robert Haas (robertmhaas@gmail.com) wrote: > (BTW, why do you not leave a blank line between quoted text and your responses?) +1. That vertical space is really helpful, at least to me. Thanks, Stephen
On Thu, Feb 5, 2015 at 5:31 AM, Stephen Frost <sfrost@snowman.net> wrote: > * Robert Haas (robertmhaas@gmail.com) wrote: >> (BTW, why do you not leave a blank line between quoted text and your responses?) > > +1. That vertical space is really helpful, at least to me. Will do if people here are better with that. I just did it to keep the messages shorter. -- Michael