summaryrefslogtreecommitdiff
path: root/src/common/media-svc-util.c
diff options
context:
space:
mode:
authorMinje Ahn <minje.ahn@samsung.com>2017-07-13 18:20:14 +0900
committerMinje Ahn <minje.ahn@samsung.com>2017-07-13 18:20:14 +0900
commitb8cd38b2337dcdc4552534c056d383937c371d2e (patch)
tree64d41c5f9fcbe8f8ae64956f83ce5d2fb6483e73 /src/common/media-svc-util.c
parent92a1ee31690fcf346ed703874cdbf489cf6c3897 (diff)
downloadlibmedia-service-b8cd38b2337dcdc4552534c056d383937c371d2e.tar.gz
libmedia-service-b8cd38b2337dcdc4552534c056d383937c371d2e.tar.bz2
libmedia-service-b8cd38b2337dcdc4552534c056d383937c371d2e.zip
Change-Id: I79c23b47d4f07615ac064282ec8cf05f9e62297f Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
Diffstat (limited to 'src/common/media-svc-util.c')
-rwxr-xr-xsrc/common/media-svc-util.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/src/common/media-svc-util.c b/src/common/media-svc-util.c
index 5bd98b6..d0d879a 100755
--- a/src/common/media-svc-util.c
+++ b/src/common/media-svc-util.c
@@ -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;
}