OSDN Git Service

Va_end should be used with va_start
authorMikhail Lappo <miklelappo@gmail.com>
Sat, 25 Mar 2017 18:02:55 +0000 (19:02 +0100)
committerElliott Hughes <enh@google.com>
Sat, 20 May 2017 20:20:41 +0000 (13:20 -0700)
va_start is used and va_end should
be invoked accordingly

Change-Id: I2b0a2af762e22082a351a4d8139aaa48bc791e88

libc/bionic/exec.cpp

index c43eb90..2001106 100644 (file)
@@ -72,19 +72,25 @@ static int __execl(const char* name, const char* argv0, ExecVariant variant, va_
 int execl(const char* name, const char* arg, ...) {
   va_list ap;
   va_start(ap, arg);
-  return __execl(name, arg, kIsExecL, ap);
+  int result = __execl(name, arg, kIsExecL, ap);
+  va_end(ap);
+  return result;
 }
 
 int execle(const char* name, const char* arg, ...) {
   va_list ap;
   va_start(ap, arg);
-  return __execl(name, arg, kIsExecLE, ap);
+  int result = __execl(name, arg, kIsExecLE, ap);
+  va_end(ap);
+  return result;
 }
 
 int execlp(const char* name, const char* arg, ...) {
   va_list ap;
   va_start(ap, arg);
-  return __execl(name, arg, kIsExecLP, ap);
+  int result = __execl(name, arg, kIsExecLP, ap);
+  va_end(ap);
+  return result;
 }
 
 int execv(const char* name, char* const* argv) {