]> Chaos Git - corbenik/ctrulib.git/commitdiff
soc: Add missing va_end() calls in fcntl.
authorLioncash <mathew1800@gmail.com>
Sun, 26 Oct 2014 23:02:10 +0000 (19:02 -0400)
committerLioncash <mathew1800@gmail.com>
Sun, 26 Oct 2014 23:08:07 +0000 (19:08 -0400)
libctru/source/services/soc.c

index 3791b9faab98263130ec03591e30fe2eab9f4d7b..5320e00dc3bc192350ea392f0332777bbcc2363c 100644 (file)
@@ -648,7 +648,6 @@ int fcntl(int sockfd, int cmd, ...)
        u32 *cmdbuf = getThreadCommandBuffer();
 
        va_list args;
-       va_start(args, cmd);
 
        if(cmd!=F_GETFL && cmd!=F_SETFL)
        {
@@ -656,6 +655,7 @@ int fcntl(int sockfd, int cmd, ...)
                return -1;
        }
 
+       va_start(args, cmd);
        if(cmd==F_SETFL)
        {
                arg = va_arg(args, int);
@@ -663,11 +663,13 @@ int fcntl(int sockfd, int cmd, ...)
                if(arg && arg!=O_NONBLOCK)
                {
                        SOCU_errno = -EINVAL;
+                       va_end(args);
                        return -1;
                }
 
                if(arg==O_NONBLOCK)arg = 0x4;
        }
+       va_end(args);
 
        cmdbuf[0] = 0x001300C2;
        cmdbuf[1] = (u32)sockfd;