diff options
| author | 2016-02-02 09:31:04 +0000 | |
|---|---|---|
| committer | 2016-02-02 09:31:04 +0000 | |
| commit | 21b2b7306e7d0612cdcb90eaa8102b6a7fa3f130 (patch) | |
| tree | ef3677e5b9af230e939fc74021ec36e2696aa993 | |
| parent | c71c44a524e3b5f1f6a9864a0f03b20acd153a6d (diff) | |
| parent | e45abfa083cacdd858feb7c6bcf0b03647a37989 (diff) | |
Merge "Alarm: add missing closedir after opendir when searching for RTC"
| -rw-r--r-- | services/core/jni/com_android_server_AlarmManagerService.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/services/core/jni/com_android_server_AlarmManagerService.cpp b/services/core/jni/com_android_server_AlarmManagerService.cpp index 5cbb277a2f12..246ab0d259f4 100644 --- a/services/core/jni/com_android_server_AlarmManagerService.cpp +++ b/services/core/jni/com_android_server_AlarmManagerService.cpp @@ -40,6 +40,8 @@ #include <linux/android_alarm.h> #include <linux/rtc.h> +#include <memory> + namespace android { static const size_t N_ANDROID_TIMERFDS = ANDROID_ALARM_TYPE_COUNT + 1; @@ -323,14 +325,14 @@ static bool rtc_is_hctosys(unsigned int rtc_id) static int wall_clock_rtc() { - DIR *dir = opendir(rtc_sysfs); - if (!dir) { + std::unique_ptr<DIR, int(*)(DIR*)> dir(opendir(rtc_sysfs), closedir); + if (!dir.get()) { ALOGE("failed to open %s: %s", rtc_sysfs, strerror(errno)); return -1; } struct dirent *dirent; - while (errno = 0, dirent = readdir(dir)) { + while (errno = 0, dirent = readdir(dir.get())) { unsigned int rtc_id; int matched = sscanf(dirent->d_name, "rtc%u", &rtc_id); |