From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | pnstrdup considered armed and dangerous |
Date: | 2016-10-03 21:55:24 |
Message-ID: | 20161003215524.mwz5p45pcverrkyk@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
A colleage of me just wrote innocent looking code like
char *shardRelationName = pnstrdup(relationName, NAMEDATALEN);
which is at the moment wrong if relationName isn't preallocated to
NAMEDATALEN size.
/*
* pnstrdup
* Like pstrdup(), but append null byte to a
* not-necessarily-null-terminated input string.
*/
char *
pnstrdup(const char *in, Size len)
{
char *out = palloc(len + 1);
memcpy(out, in, len);
out[len] = '\0';
return out;
}
isn't that a somewhat weird behaviour / implementation? Not really like
strndup(), which one might believe to be analoguous...
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2016-10-03 23:57:52 | Re: pageinspect: Hash index support |
Previous Message | Alvaro Herrera | 2016-10-03 21:44:16 | Re: Question / requests. |