Some dead code in metaphone() of fuzzystrmatch.c

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Some dead code in metaphone() of fuzzystrmatch.c
Date: 2015-02-02 01:39:31
Message-ID: CAB7nPqSoyef=p2mA=jYr44NHnSsS+KKw=p1DxAt8ZbMVnKB-fA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 Content-Type Size
20150202_metaphone_deadblock.patch text/x-diff 583 bytes

Responses

Browse pgsql-hackers by date

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