Bug fix for crash-wrorker 39/87339/1 accepted/tizen/common/20160909.114645 accepted/tizen/ivi/20160909.062108 accepted/tizen/mobile/20160909.062020 accepted/tizen/tv/20160909.062036 accepted/tizen/wearable/20160909.062050 submit/tizen/20160908.234540 submit/tizen/20160908.234544
authorKunhoon Baik <knhoon.baik@samsung.com>
Wed, 7 Sep 2016 11:00:19 +0000 (20:00 +0900)
committerKunhoon Baik <knhoon.baik@samsung.com>
Wed, 7 Sep 2016 11:02:11 +0000 (20:02 +0900)
1) assign privilege for crash-manager.sh
2) check readdir_r's NULL

Change-Id: I42f191edfec12ccbbc47461c2038f33c3c214870

packaging/crash-worker.manifest
packaging/crash-worker.spec
src/sys-assert/sys-assert.c

index e10285df09fc086df615e4d7256107f240f7d16f..61052fb40147ee8d180e09056f9a50f974e2537f 100644 (file)
@@ -4,5 +4,6 @@
        </request>
        <assign>
                <filesystem path="/usr/bin/dump_systemstate" label="System" exec_label="System"/>
+               <filesystem path="/usr/bin/crash-manager.sh" label="System" exec_label="System"/>
        </assign>
 </manifest>
index 21b9ee5990fc9ea1b7f558fec4d4c26d5645a16e..5d5fde035a42ef22a9f51419e1c7458bb2706a9b 100644 (file)
@@ -118,7 +118,7 @@ sed -i "/${pattern}/D" %{_sysconfdir}/ld.so.preload
 %dir %{crash_path}
 %dir %{crash_temp}
 %attr(0755,system,system) %{_bindir}/dump_systemstate
-%{_bindir}/crash-manager.sh
+%attr(0755,system,system) %{_bindir}/crash-manager.sh
 %{_prefix}/lib/sysctl.d/99-crash-manager.conf
 
 %if "%{?sys_assert}" == "on"
index d7e94932a383957b665c28586e79ddc21348d3b2..0c1bbf2cf27afdb4b77d3fa0dd4065e34e45b77f 100644 (file)
@@ -595,7 +595,8 @@ void sighandler(int signum, siginfo_t *info, void *context)
        pid_t pid;
        pid_t tid;
        DIR *dir;
-       struct dirent entry, *dentry;
+       struct dirent entry;
+       struct dirent *dentry=NULL;
        char timestr[TIME_MAX_LEN];
        char processname[NAME_MAX] = {0,};
        char exepath[PATH_LEN] = {0,};
@@ -772,7 +773,7 @@ void sighandler(int signum, siginfo_t *info, void *context)
                if (!dir) {
                        fprintf(stderr, "[sys-assert]can't open %s\n", TASK_PATH);
                } else {
-                       while (readdir_r(dir, &entry, &dentry) == 0) {
+                       while (readdir_r(dir, &entry, &dentry) == 0 && dentry) {
                                if (strcmp(dentry->d_name, ".") == 0
                                                || strcmp(dentry->d_name, "..") == 0)
                                        continue;