If exclude_non_seclabel_mounts() ever gets run on a kernel where /proc/mounts only contains three columns, mount_info[3] will be used "without being initialized in "strtok(mount_info[3], ",")" because variable index would be 3 at the end of this loop: index = 0; item = strtok(buf, " "); while (item != NULL) { mount_info[index] = item; if (index == 3) break; index++; item = strtok(NULL, " "); } Swap the condition on index and its increment so that it gets to 4 only when there are at least four columns. This issue has been found using clang's static analyzer. Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx> --- libselinux/src/selinux_restorecon.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c index 9fdafea17de7..eefd2cf83e32 100644 --- a/libselinux/src/selinux_restorecon.c +++ b/libselinux/src/selinux_restorecon.c @@ -252,12 +252,12 @@ static int exclude_non_seclabel_mounts(void) item = strtok(buf, " "); while (item != NULL) { mount_info[index] = item; - if (index == 3) - break; index++; + if (index == 4) + break; item = strtok(NULL, " "); } - if (index < 3) { + if (index < 4) { selinux_log(SELINUX_ERROR, "/proc/mounts record \"%s\" has incorrect format.\n", buf); -- 2.12.0 _______________________________________________ Selinux mailing list Selinux@xxxxxxxxxxxxx To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx. To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.