From 206731de90c2bb756af99263694620fdcbadf5fb Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Tue, 27 Mar 2018 12:19:24 +0200 Subject: [PATCH] Ensure that maxlen is an integer value in dict_int --- contrib/dict_int/dict_int.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/dict_int/dict_int.c b/contrib/dict_int/dict_int.c index 56ede37089..a9077e6438 100644 --- a/contrib/dict_int/dict_int.c +++ b/contrib/dict_int/dict_int.c @@ -41,10 +41,16 @@ dintdict_init(PG_FUNCTION_ARGS) foreach(l, dictoptions) { DefElem *defel = (DefElem *) lfirst(l); + char *endptr; if (strcmp(defel->defname, "maxlen") == 0) { - d->maxlen = atoi(defGetString(defel)); + errno = 0; + d->maxlen = strtol(defGetString(defel), &endptr, 10); + if (*endptr != '\0' || errno != 0) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("maxlen requires an integer value"))); } else if (strcmp(defel->defname, "rejectlong") == 0) { -- 2.14.1.145.gb3622a4ee