From 6ce1f648d6e34e49472ce938c83e5bf8e65cd429 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Mon, 13 Aug 2007 01:03:43 +0200 Subject: [PATCH] mysql_selector.c: Check return value of regcomp(). --- mysql_selector.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mysql_selector.c b/mysql_selector.c index 07cbfc65..bbc05bdf 100644 --- a/mysql_selector.c +++ b/mysql_selector.c @@ -67,11 +67,11 @@ static const struct para_macro mysql_macro_list[] = { }; /** - * simple search and replace routine + * Simple search and replace routine. * - * \param src source string - * \param macro_name the name of the macro - * \param replacement the replacement format string + * \param src Source String. + * \param macro_name The name of the macro. + * \param replacement The replacement format string. * * In \p src, replace each occurence of \p macro_name(arg) by the string * determined by the \p replacement format string. \p replacement may (but @@ -79,7 +79,7 @@ static const struct para_macro mysql_macro_list[] = { * replaced by \p arg. * * \return A string in which all matches in \p src are replaced, or \p NULL if - * an syntax error was encountered. Caller must free the result. + * an error was encountered. Caller must free the result. * * \sa regcomp(3) */ @@ -95,7 +95,8 @@ __must_check __malloc static char *s_a_r(const char *src, const char* macro_name if (!macro_name || !replacement || !src) return para_strdup(src); - regcomp(&preg, macro_name, 0); + if (regcomp(&preg, macro_name, 0) != 0) + return NULL; while (regexec(&preg, bufptr, nmatch, pmatch, eflags) != REG_NOMATCH) { char *tmp, *arg, *o_bracket, *c_bracket; -- 2.39.2