From 684f53969c34f39849cb71d3f2843038d60b8c25 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Fri, 31 Mar 2017 21:10:34 +0900 Subject: [PATCH] Fix static analyzer issues Change-Id: I7e0899b101a48004cb5f832a6ddba21cfdf7cedb Signed-off-by: Sangyoon Jang --- src/request.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/request.c b/src/request.c index eb67593..238a29f 100644 --- a/src/request.c +++ b/src/request.c @@ -314,6 +314,7 @@ static int __handle_request_install(uid_t caller_uid, GVariant *value; int i = 0; int len = 0; + size_t s = 0; g_variant_get(parameters, "(u&s&s@as)", &target_uid, &arg_pkgtype, &pkgpath, &value); @@ -332,9 +333,12 @@ static int __handle_request_install(uid_t caller_uid, } for (i = 0; i < args_count; i++) { - strncat(args, tmp_args[i], strlen(tmp_args[i])); - if (i != args_count - 1) - strncat(args, " ", strlen(" ")); + s += strlen(tmp_args[i]); + strncat(args, tmp_args[i], len - s - 1); + if (i != args_count - 1) { + s += strlen(" "); + strncat(args, " ", len - s - 1); + } } if (target_uid == (uid_t)-1 || pkgpath == NULL) { @@ -404,6 +408,7 @@ static int __handle_request_mount_install(uid_t caller_uid, GVariant *value; int i = 0; int len = 0; + size_t s = 0; g_variant_get(parameters, "(u&s&s@as)", &target_uid, &arg_pkgtype, &pkgpath, &value); @@ -422,9 +427,12 @@ static int __handle_request_mount_install(uid_t caller_uid, } for (i = 0; i < args_count; i++) { - strncat(args, tmp_args[i], strlen(tmp_args[i])); - if (i != args_count - 1) - strncat(args, " ", strlen(" ")); + s += strlen(tmp_args[i]); + strncat(args, tmp_args[i], len - s - 1); + if (i != args_count - 1) { + s += strlen(" "); + strncat(args, " ", len - s - 1); + } } if (target_uid == (uid_t)-1 || pkgpath == NULL) { -- 2.7.4