From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | William ZHANG <uniware(at)zedware(dot)org>, pgsql-patches(at)postgresql(dot)org |
Subject: | Re: Bug in canonicalize_path() |
Date: | 2005-08-12 15:37:51 |
Message-ID: | 200508121537.j7CFbpm23334@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Tom Lane wrote:
> Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> > Tom Lane wrote:
> >> ... it's part of the API contract of canonicalize_path() that it
> >> will not return something with trailing "." or "..".
>
> > OK, new patch which I think handles all cases.
>
> > + if (pending_strips > 0)
> > + {
> > + for (; pending_strips > 0; pending_strips--)
> > + strcat(path, "../");
> > + trim_trailing_separator(path);
> > + }
>
> Uh, that hardly meets the API contract that I mentioned. I think
> we really have to throw an error if the path tries to ".." above
> the starting point. (Remember again that most of the uses of
> this thing are dealing with absolute paths anyway, so this isn't
> that big a deal.)
OK, so how do you want to error out? exit()? There are no ereport
calls in that file. We can add them (using a *_srv.c file) or let it
return a boolean and check it at each call site.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Wong | 2005-08-12 15:43:10 | Re: data on devel code perf dip |
Previous Message | Alvaro Herrera | 2005-08-12 12:40:59 | Re: [HACKERS] For review: Server instrumentation patch |