Add checker for input parameters 19/138719/1 accepted/tizen/unified/20170717.170046 submit/tizen/20170714.003836
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 13 Jul 2017 09:20:14 +0000 (18:20 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 13 Jul 2017 09:20:14 +0000 (18:20 +0900)
Change-Id: I79c23b47d4f07615ac064282ec8cf05f9e62297f
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/media-svc-util.c

index 5bd98b6..d0d879a 100755 (executable)
@@ -788,28 +788,20 @@ static int __media_svc_resize_artwork(unsigned char *image, unsigned int size, c
 
 static int __media_svc_safe_atoi(char *buffer, int *si)
 {
-       char *end;
+       char *end = NULL;
        errno = 0;
+       media_svc_retvm_if(buffer == NULL || si == NULL, MS_MEDIA_ERR_INTERNAL, "invalid parameter");
+
        const long sl = strtol(buffer, &end, 10);
 
-       if (end == buffer) {
-               media_svc_error("not a decimal number");
-               return MS_MEDIA_ERR_INTERNAL;
-       } else if ('\0' != *end) {
-               media_svc_error("extra characters at end of input: %s", end);
-               return MS_MEDIA_ERR_INTERNAL;
-       } else if ((LONG_MIN == sl || LONG_MAX == sl) && (ERANGE == errno)) {
-               media_svc_error("out of range of type long");
-               return MS_MEDIA_ERR_INTERNAL;
-       } else if (sl > INT_MAX) {
-               media_svc_error("greater than INT_MAX");
-               return MS_MEDIA_ERR_INTERNAL;
-       } else if (sl < INT_MIN) {
-               media_svc_error("less than INT_MIN");
-               return MS_MEDIA_ERR_INTERNAL;
-       } else {
-               *si = (int)sl;
-       }
+       media_svc_retvm_if(end == buffer, MS_MEDIA_ERR_INTERNAL, "not a decimal number");
+       media_svc_retvm_if('\0' != *end, MS_MEDIA_ERR_INTERNAL, "extra characters at end of input: %s", end);
+       media_svc_retvm_if((LONG_MIN == sl || LONG_MAX == sl) && (ERANGE == errno), MS_MEDIA_ERR_INTERNAL, "out of range of type long");
+       media_svc_retvm_if(sl > INT_MAX, MS_MEDIA_ERR_INTERNAL, "greater than INT_MAX");
+       media_svc_retvm_if(sl < INT_MIN, MS_MEDIA_ERR_INTERNAL, "less than INT_MIN");
+
+       *si = (int)sl;
+
        return MS_MEDIA_ERR_NONE;
 }