]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 247076 via svnmerge from
authorMark Michelson <mmichelson@digium.com>
Tue, 16 Feb 2010 23:46:24 +0000 (23:46 +0000)
committerMark Michelson <mmichelson@digium.com>
Tue, 16 Feb 2010 23:46:24 +0000 (23:46 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r247076 | mmichelson | 2010-02-16 17:44:33 -0600 (Tue, 16 Feb 2010) | 12 lines

  Add va_end calls to __ast_str_helper.

  According to the man page for stdarg(3),
  "Each invocation of va_copy() must be matched by a
  corresponding invocation of va_end() in the same
  function."

  There were several cases in __ast_str_helper where
  va_copy was not matched with a corresponding call
  to va_end.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@247078 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/utils.c

index 89ea3c74969180283640c27a803310235bb7a164..f82c20f2969428027b3190ab8ec8cd79f6a510bc 100644 (file)
@@ -1796,6 +1796,7 @@ int __ast_str_helper(struct ast_str **buf, size_t max_len,
                        }
                        if (ast_str_make_space(buf, need)) {
                                ast_verbose("failed to extend from %d to %d\n", (int)(*buf)->len, need);
+                               va_end(aq);
                                return AST_DYNSTR_BUILD_FAILED;
                        }
                        (*buf)->str[offset] = '\0';     /* Truncate the partial write. */
@@ -1804,6 +1805,7 @@ int __ast_str_helper(struct ast_str **buf, size_t max_len,
                        va_end(aq);
                        continue;
                }
+               va_end(aq);
                break;
        } while (1);
        /* update space used, keep in mind the truncation */