summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/libsmbclient/smbwrapper/smbw.c14
-rw-r--r--lib/torture/torture.c2
-rw-r--r--libcli/auth/msrpc_parse.c4
-rw-r--r--source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c1
4 files changed, 16 insertions, 5 deletions
diff --git a/examples/libsmbclient/smbwrapper/smbw.c b/examples/libsmbclient/smbwrapper/smbw.c
index e2e44c1f0f..1356c78d04 100644
--- a/examples/libsmbclient/smbwrapper/smbw.c
+++ b/examples/libsmbclient/smbwrapper/smbw.c
@@ -55,12 +55,9 @@ smbw_ref -- manipulate reference counts
******************************************************/
int smbw_ref(int client_fd, Ref_Count_Type type, ...)
{
- va_list ap;
-
/* client id values begin at SMBC_BASE_FC. */
client_fd -= SMBC_BASE_FD;
- va_start(ap, type);
switch(type)
{
case SMBW_RCT_Increment:
@@ -73,9 +70,16 @@ int smbw_ref(int client_fd, Ref_Count_Type type, ...)
return smbw_ref_count[client_fd];
case SMBW_RCT_Set:
- return (smbw_ref_count[client_fd] = va_arg(ap, int));
+ {
+ va_list ap;
+ int ret;
+
+ va_start(ap, type);
+ ret = (smbw_ref_count[client_fd] = va_arg(ap, int));
+ va_end(ap);
+ return ret;
+ }
}
- va_end(ap);
/* never gets here */
return -1;
diff --git a/lib/torture/torture.c b/lib/torture/torture.c
index 17adce94e5..99447e7e53 100644
--- a/lib/torture/torture.c
+++ b/lib/torture/torture.c
@@ -107,6 +107,7 @@ void torture_comment(struct torture_context *context, const char *comment, ...)
va_start(ap, comment);
tmp = talloc_vasprintf(context, comment, ap);
+ va_end(ap);
context->results->ui_ops->comment(context, tmp);
@@ -126,6 +127,7 @@ void torture_warning(struct torture_context *context, const char *comment, ...)
va_start(ap, comment);
tmp = talloc_vasprintf(context, comment, ap);
+ va_end(ap);
context->results->ui_ops->warning(context, tmp);
diff --git a/libcli/auth/msrpc_parse.c b/libcli/auth/msrpc_parse.c
index 9125c1cd78..50e0d5c2f9 100644
--- a/libcli/auth/msrpc_parse.c
+++ b/libcli/auth/msrpc_parse.c
@@ -71,6 +71,7 @@ bool msrpc_gen(TALLOC_CTX *mem_ctx,
(smb_ucs2_t **)(void *)&pointers[i].data,
s, &n);
if (!ret) {
+ va_end(ap);
return false;
}
pointers[i].length = n;
@@ -84,6 +85,7 @@ bool msrpc_gen(TALLOC_CTX *mem_ctx,
pointers, (char **)(void *)&pointers[i].data,
s, &n);
if (!ret) {
+ va_end(ap);
return false;
}
pointers[i].length = n;
@@ -99,6 +101,7 @@ bool msrpc_gen(TALLOC_CTX *mem_ctx,
(smb_ucs2_t **)(void *)&pointers[i].data,
s, &n);
if (!ret) {
+ va_end(ap);
return false;
}
pointers[i].length = n;
@@ -192,6 +195,7 @@ bool msrpc_gen(TALLOC_CTX *mem_ctx,
/* a helpful macro to avoid running over the end of our blob */
#define NEED_DATA(amount) \
if ((head_ofs + amount) > blob->length) { \
+ va_end(ap); \
return false; \
}
diff --git a/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c b/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
index 8acbac4cc3..d0573d389e 100644
--- a/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
+++ b/source4/lib/ldb/ldb_sqlite3/ldb_sqlite3.c
@@ -485,6 +485,7 @@ query_int(const struct lsqlite3_private * lsqlite3,
/* Format the query */
if ((p = sqlite3_vmprintf(pSql, args)) == NULL) {
+ va_end(args);
return SQLITE_NOMEM;
}