ad2208ec22
When starting restorecond without any option the following redundant console log is outputed: /dev/log 100.0% /var/volatile/run/syslogd.pid 100.0% ... This is caused by two global variables of same name r_opts. When executes r_opts = opts in restore_init(), it originally intends to assign the address of struct r_opts in "restorecond.c" to the pointer *r_opts in "restore.c". However, the address is assigned to the struct r_opts and covers the value of low eight bytes in it. That causes unexpected value of member varibale 'nochange' and 'verbose' in struct r_opts, thus affects value of 'restorecon_flags' and executes unexpected operations when restorecon the files such as the redundant console log output or file label nochange. Cause restorecond/restore.c is copied from policycoreutils/setfiles, which share the same pattern. It also has potential risk to generate same problems, So fix it in case. Signed-off-by: Baichuan Kong <kongbaichuan@huawei.com> |
||
---|---|---|
.. | ||
ru | ||
.gitignore | ||
COPYING | ||
Makefile | ||
org.selinux.Restorecond.service | ||
restore.c | ||
restore.h | ||
restorecond.8 | ||
restorecond.c | ||
restorecond.conf | ||
restorecond.desktop | ||
restorecond.h | ||
restorecond.init | ||
restorecond.service | ||
restorecond_user.conf | ||
stringslist.c | ||
stringslist.h | ||
user.c | ||
utmpwatcher.c | ||
utmpwatcher.h | ||
VERSION | ||
watch.c |