From: JengHyun Kang Date: Thu, 7 Sep 2017 10:09:02 +0000 (+0900) Subject: evdev: modify a readdir() to readdir_r() for threads safety X-Git-Tag: accepted/tizen/unified/20170908.062219~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F96%2F148296%2F1;p=platform%2Fcore%2Fuifw%2Fpepper.git evdev: modify a readdir() to readdir_r() for threads safety Change-Id: Ibfd75463a90d74743b58bcdc68bc4c86e9d6daf2 --- diff --git a/src/lib/evdev/evdev.c b/src/lib/evdev/evdev.c index 9121763..5240b4e 100644 --- a/src/lib/evdev/evdev.c +++ b/src/lib/evdev/evdev.c @@ -251,20 +251,24 @@ pepper_evdev_device_probe(pepper_evdev_t *evdev, uint32_t caps) uint32_t probed = 0; DIR *dir_info = NULL; - struct dirent *dir_entry = NULL; + struct dirent *dir_entry = NULL, dir_prev; + int ret = 0; /* Probe event device nodes under /dev/input */ dir_info = opendir("/dev/input/"); if (dir_info) { - while ((dir_entry = readdir(dir_info))) + ret = readdir_r(dir_info, &dir_prev, &dir_entry); + while ((ret == 0) && (dir_entry != NULL)) { if (!strncmp(dir_entry->d_name, "event", 5)) { if (caps & WL_SEAT_CAPABILITY_KEYBOARD) probed += _evdev_keyboard_device_open(evdev, dir_entry->d_name); } + dir_prev = *dir_entry; + ret = readdir_r(dir_info, &dir_prev, &dir_entry); } closedir(dir_info);