Обсуждение: Unnecessary pointer-NULL checks in pgp-pgsql.c

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

Unnecessary pointer-NULL checks in pgp-pgsql.c

От
Michael Paquier
Дата:
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

Вложения

Re: Unnecessary pointer-NULL checks in pgp-pgsql.c

От
Robert Haas
Дата:
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



Re: Unnecessary pointer-NULL checks in pgp-pgsql.c

От
Michael Paquier
Дата:
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

Вложения

Re: Unnecessary pointer-NULL checks in pgp-pgsql.c

От
Robert Haas
Дата:
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



Re: Unnecessary pointer-NULL checks in pgp-pgsql.c

От
Stephen Frost
Дата:
* 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

Re: Unnecessary pointer-NULL checks in pgp-pgsql.c

От
Michael Paquier
Дата:
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