From: | Sandro Santilli <strk(at)keybit(dot)net> |
---|---|
To: | Greg Stark <stark(at)mit(dot)edu> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Craig Ringer <craig(at)2ndquadrant(dot)com>, Florian Pflug <fgp(at)phlo(dot)org>, PostgreSQL Bugs <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: Leaking regexp_replace in 9.3.1 ? (was: [HACKERSUninterruptable regexp_replace in 9.3.1 ?) |
Date: | 2014-03-19 11:43:25 |
Message-ID: | 20140319114325.GG4042@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On Wed, Mar 19, 2014 at 10:57:10AM +0000, Greg Stark wrote:
> On Wed, Mar 19, 2014 at 8:57 AM, Sandro Santilli <strk(at)keybit(dot)net> wrote:
> > ==21240== by 0x64A200: newdfa.isra.4 (rege_dfa.c:307)
> > ==21240== by 0x64A4C3: getsubdfa (regexec.c:285)
> > ==21240== by 0x64B80A: cdissect (regexec.c:673)
> > ==21240== by 0x64C802: pg_regexec (regexec.c:473)
>
>
> It looks like a simple bug pg_regexec where it's reusing a loop
> counter "n" to mean two different things. When it goes to free all the
> subdfas it looks like the code was written based "n" still being the
> number of trees but in fact it's been reused to be the number of
> matches.
I confirm this patch fixes the leak:
diff --git a/src/backend/regex/regexec.c b/src/backend/regex/regexec.c
index 0edb83c..2e97662 100644
--- a/src/backend/regex/regexec.c
+++ b/src/backend/regex/regexec.c
@@ -259,6 +259,7 @@ pg_regexec(regex_t *re,
/* clean up */
if (v->pmatch != pmatch && v->pmatch != mat)
FREE(v->pmatch);
+ n = (size_t) v->g->ntree;
for (i = 0; i < n; i++)
{
if (v->subdfas[i] != NULL)
--strk;
From | Date | Subject | |
---|---|---|---|
Next Message | Sandro Santilli | 2014-03-19 12:11:02 | Re: Leaking regexp_replace in 9.3.1 ? (was: [HACKERSUninterruptable regexp_replace in 9.3.1 ?) |
Previous Message | Dave Page | 2014-03-19 11:08:02 | Re: BUG #9619: error creating plperl , plperlu language , plperl.dll error |
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2014-03-19 11:54:56 | Re: Archive recovery won't be completed on some situation. |
Previous Message | Simon Riggs | 2014-03-19 11:35:42 | Re: B-tree descend for insertion locking |