From: | Julien Rouhaud <rjuju123(at)gmail(dot)com> |
---|---|
To: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
Cc: | Magnus Hagander <magnus(at)hagander(dot)net>, Michael Paquier <michael(at)paquier(dot)xyz>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pg_basebackup fails on databases with high OIDs |
Date: | 2020-01-11 16:44:37 |
Message-ID: | 20200111164437.GB56190@nol |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Jan 11, 2020 at 08:21:11AM +0100, Peter Eisentraut wrote:
> On 2020-01-06 21:00, Magnus Hagander wrote:
> > > +0.5 to avoid calling OidInputFunctionCall()
> >
> > Or just directly using atol() instead of atoi()? Well maybe not
> > directly but in a small wrapper that verifies it's not bigger than an
> > unsigned?
> >
> > Unlike in cases where we use oidin etc, we are dealing with data that
> > is "mostly trusted" here, aren't we? Meaning we could call atol() on
> > it, and throw an error if it overflows, and be done with it?
> > Subdirectories in the data directory aren't exactly "untrusted enduser
> > data"...
>
> Yeah, it looks like we are using strtoul() without additional error checking
> in similar situations, so here is a patch doing it like that.
> - true, isDbDir ? pg_atoi(lastDir + 1, sizeof(Oid), 0) : InvalidOid);
> + true, isDbDir ? (Oid) strtoul(lastDir + 1, NULL, 10) : InvalidOid);
Looking at some other code, I just discovered the atooid() macro that already
does the same, maybe it'd be better for consistency to use that instead?
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2020-01-11 16:47:41 | Re: pg_basebackup fails on databases with high OIDs |
Previous Message | Mahendra Singh Thalor | 2020-01-11 16:08:17 | Re: [HACKERS] Block level parallel vacuum |