* pgpool: a language independent connection pool server for PostgreSQL
* written by Tatsuo Ishii
*
- * Copyright (c) 2003-2018 PgPool Global Development Group
+ * Copyright (c) 2003-2019 PgPool Global Development Group
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby
}
s = strip_quote(str);
+ if (!s)
+ {
+ elog(WARNING, "pattern_compare: strip_quote() returns error");
+ return -1;
+ }
+
for (i = 0; i < *pattc; i++)
{
if (lists_patterns[i].type != type)
return result;
}
+/*
+ * Returns double quotes stripped version of malloced string.
+ * Callers must free() after using it.
+ * Returns NULL on error.
+ */
static char *
strip_quote(char *str)
{
char *after;
+ int len;
int i = 0;
- after = malloc(sizeof(char) * strlen(str) + 1);
+ len = strlen(str);
+ after = malloc(sizeof(char) * len + 1);
+ if (!after)
+ {
+ return NULL;
+ }
+
+ if (len == 0)
+ {
+ /* empty string case */
+ *after = '\0';
+ return after;
+ }
do
{