crash-manager: make secure program 47/104647/2 accepted/tizen/3.0/common/20161215.163612 accepted/tizen/3.0/ivi/20161215.044958 accepted/tizen/3.0/mobile/20161215.044940 accepted/tizen/3.0/tv/20161215.044951 accepted/tizen/3.0/wearable/20161215.044955 submit/tizen_3.0/20161214.090816
authorSunmin Lee <sunm.lee@samsung.com>
Wed, 14 Dec 2016 03:51:31 +0000 (12:51 +0900)
committerSunmin Lee <sunm.lee@samsung.com>
Wed, 14 Dec 2016 04:16:01 +0000 (13:16 +0900)
- Use secure function (strncat)
- Prevent buffer overrun

Change-Id: I47acf1bb39c0be123a486116f811b78f30d6ff01
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
src/crash-manager/crash-manager.c

index a80b3f6..a61f063 100644 (file)
@@ -424,14 +424,16 @@ static void dump_system_state(void)
 
 static void execute_crash_modules(int argc, char *argv[], int debug)
 {
-       int ret, i;
+       int ret, i, length;
        char arg_append[PATH_MAX];
        char command[PATH_MAX];
 
+       length = 0;
        arg_append[0] = '\0';
-       for (i = 1; i < argc; i++) {
-               strcat(arg_append, argv[i]);
-               strcat(arg_append, " ");
+       for (i = 1; i < argc && length + strlen(argv[i]) + 1 < PATH_MAX; i++) {
+               strncat(arg_append, argv[i], strlen(argv[i]));
+               strncat(arg_append, " ", 1);
+               length += strlen(argv[i]) + 1;
        }
 
        /* Execute crash-pipe */