pnstrdup considered armed and dangerous

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pnstrdup considered armed and dangerous
Дата
Msg-id 20161003215524.mwz5p45pcverrkyk@alap3.anarazel.de
обсуждение исходный текст
Ответы Re: pnstrdup considered armed and dangerous  (Robert Haas <robertmhaas@gmail.com>)
Re: pnstrdup considered armed and dangerous  (Geoff Winkless <pgsqladmin@geoff.dj>)
Re: [HACKERS] pnstrdup considered armed and dangerous  (Andres Freund <andres@anarazel.de>)
Список 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



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Question / requests.
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: pageinspect: Hash index support