On 2020-01-11 17:47, Magnus Hagander wrote:
On Sat, Jan 11, 2020 at 5:44 PM Julien Rouhaud <rjuju...@gmail.com> wrote:
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?
+1. Whie it does the same thing, consistency is good! :)
committed
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services