Message ID | 20190225171220.5827-1-daniel.diaz@linaro.org |
---|---|
State | New |
Headers | show |
Series | setregid01: Fix security warning for string formatting | expand |
> On Feb 25, 2019, at 09:12, Daniel Díaz <daniel.diaz@linaro.org> wrote: > > GCC 8.2.0 complains with the following: > setregid01.c: In function 'run': > setregid01.c:47:3: error: format not a string literal and no format arguments [-Werror=format-security] > tst_res(TFAIL | TTERRNO, tc->msg); > ^~~~~~~ > because there is no string formatting in the message. This can > be seen with CFLAGS set to: > -Wformat -Wformat-security -Werror=format-security > as Yocto Project's Poky does, e.g.: > http://errors.yoctoproject.org/Errors/Details/230043/ > > Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> > --- > testcases/kernel/syscalls/setregid/setregid01.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/testcases/kernel/syscalls/setregid/setregid01.c b/testcases/kernel/syscalls/setregid/setregid01.c > index f2e41e134..8c9e11918 100644 > --- a/testcases/kernel/syscalls/setregid/setregid01.c > +++ b/testcases/kernel/syscalls/setregid/setregid01.c > @@ -44,9 +44,9 @@ static void run(unsigned int n) > TEST(SETREGID(*tc->arg1, *tc->arg2)); > > if (TST_RET == -1) > - tst_res(TFAIL | TTERRNO, tc->msg); > + tst_res(TFAIL | TTERRNO, "%s", tc->msg); > else > - tst_res(TPASS, tc->msg); > + tst_res(TPASS, "%s", tc->msg); > } > > static void setup(void) > -- > 2.17.1 LGTM!
Hi Daniel, thanks for your patch, merged. Maybe we should have -Wformat -Wformat-security -Werror=format-security as the default. Kind regards, Petr
Hi! > Maybe we should have -Wformat -Wformat-security -Werror=format-security as the > default. I'm all for it but we have to check if a compiler on oldest supported distro works fine with these flags, othewise we would have to add a configure check...
diff --git a/testcases/kernel/syscalls/setregid/setregid01.c b/testcases/kernel/syscalls/setregid/setregid01.c index f2e41e134..8c9e11918 100644 --- a/testcases/kernel/syscalls/setregid/setregid01.c +++ b/testcases/kernel/syscalls/setregid/setregid01.c @@ -44,9 +44,9 @@ static void run(unsigned int n) TEST(SETREGID(*tc->arg1, *tc->arg2)); if (TST_RET == -1) - tst_res(TFAIL | TTERRNO, tc->msg); + tst_res(TFAIL | TTERRNO, "%s", tc->msg); else - tst_res(TPASS, tc->msg); + tst_res(TPASS, "%s", tc->msg); } static void setup(void)
GCC 8.2.0 complains with the following: setregid01.c: In function 'run': setregid01.c:47:3: error: format not a string literal and no format arguments [-Werror=format-security] tst_res(TFAIL | TTERRNO, tc->msg); ^~~~~~~ because there is no string formatting in the message. This can be seen with CFLAGS set to: -Wformat -Wformat-security -Werror=format-security as Yocto Project's Poky does, e.g.: http://errors.yoctoproject.org/Errors/Details/230043/ Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> --- testcases/kernel/syscalls/setregid/setregid01.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)