Fix a potentially non-returning function in base64 code.
authorColin Guthrie <pulse@colin.guthr.ie>
Tue, 13 Jan 2009 23:34:09 +0000 (23:34 +0000)
committerColin Guthrie <pulse@colin.guthr.ie>
Tue, 13 Jan 2009 23:39:17 +0000 (23:39 +0000)
src/modules/raop/base64.c

index 8918def..059c702 100644 (file)
@@ -45,6 +45,7 @@ static int pos(char c)
     if (c >= '0' && c <= '9') return c - '0' + 52;
     if (c == '+') return 62;
     if (c == '/') return 63;
+    return -1;
 }
 
 int pa_base64_encode(const void *data, int size, char **str)
@@ -97,8 +98,12 @@ static unsigned int token_decode(const char *token)
             marker++;
         else if (marker > 0)
             return DECODE_ERROR;
-        else
-            val += pos(token[i]);
+        else {
+            int lpos = pos(token[i]);
+            if (lpos < 0)
+                return DECODE_ERROR;
+            val += lpos;
+        }
     }
     if (marker > 2)
         return DECODE_ERROR;