Обсуждение: 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
Вложения
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
Вложения
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