mysql_selector.c: Check return value of regcomp().
authorAndre Noll <maan@systemlinux.org>
Sun, 12 Aug 2007 23:03:43 +0000 (01:03 +0200)
committerAndre Noll <maan@systemlinux.org>
Sun, 12 Aug 2007 23:03:43 +0000 (01:03 +0200)
mysql_selector.c

index 07cbfc6..bbc05bd 100644 (file)
@@ -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;