Some dead code in metaphone() of fuzzystrmatch.c - Mailing list pgsql-hackers

From Michael Paquier
Subject Some dead code in metaphone() of fuzzystrmatch.c
Date
Msg-id CAB7nPqSoyef=p2mA=jYr44NHnSsS+KKw=p1DxAt8ZbMVnKB-fA@mail.gmail.com
Whole thread Raw
Responses Re: Some dead code in metaphone() of fuzzystrmatch.c
List pgsql-hackers
Hi all,

In metaphone() we do the following:
        /* return an empty string if we receive one */
        if (!(str_i_len > 0))
                PG_RETURN_TEXT_P(cstring_to_text(""));

        if (str_i_len > MAX_METAPHONE_STRLEN)
                ereport(ERROR,
                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
                                 errmsg("argument exceeds the maximum
length of %d bytes",
                                                MAX_METAPHONE_STRLEN)));

        if (!(str_i_len > 0))
                ereport(ERROR,
                                (errcode(ERRCODE_ZERO_LENGTH_CHARACTER_STRING),
                                 errmsg("argument is empty string")));
As we already return an empty string if the first condition is
satisfied, the third condition will never be satisfied. Returning an
empty string when output string is NULL has been introduced in commit
13629df of 2004, so I think that we should simply remove the code
block that will never be crossed, as in the patch attached.
Coverity has pointed out this issue.
Regards,
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: INSERT ... ON CONFLICT {UPDATE | IGNORE} 2.0
Next
From: Michael Paquier
Date:
Subject: Unnecessary pointer-NULL checks in pgp-pgsql.c