]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
rtcwake: terminate mode and excl[]
authorKarel Zak <kzak@redhat.com>
Tue, 28 May 2019 10:53:58 +0000 (12:53 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 28 May 2019 10:53:58 +0000 (12:53 +0200)
* terminate string read from /proc
* terminate array for exclusive options

Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/rtcwake.c

index 1058e8af9c73a13a53f265a7b89504cf1ec99850..4f854bb0b0f23e295e6ac20472d8ecd578c1aaa6 100644 (file)
@@ -247,12 +247,15 @@ static char **get_sys_power_states(struct rtcwake_control *ctl)
 
        if (!ctl->possible_modes) {
                char buf[256] = { 0 };
+               ssize_t ss;
 
                fd = open(SYS_POWER_STATE_PATH, O_RDONLY);
                if (fd < 0)
                        goto nothing;
-               if (read(fd, &buf, sizeof(buf) - 1) <= 0)
+               ss = read(fd, &buf, sizeof(buf) - 1);
+               if (ss <= 0)
                        goto nothing;
+               buf[ss] = '\0';
                ctl->possible_modes = strv_split(buf, " \n");
                close(fd);
        }
@@ -451,6 +454,7 @@ int main(int argc, char **argv)
        static const ul_excl_t excl[] = {
                { 'a', 'l', 'u' },
                { 's', 't', OPT_DATE },
+               { 0 },
        };
        int excl_st[ARRAY_SIZE(excl)] = UL_EXCL_STATUS_INIT;