From: Alan T. DeKok Date: Thu, 14 Mar 2013 01:00:11 +0000 (-0400) Subject: Don't use %s for non-nil terminated strings X-Git-Tag: release_3_0_0_beta1~757 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a10f7e00f004c86bcb32021ec070f214d8440f2;p=thirdparty%2Ffreeradius-server.git Don't use %s for non-nil terminated strings --- diff --git a/src/main/radwho.c b/src/main/radwho.c index 6bacdb301e6..fbb5aba7539 100644 --- a/src/main/radwho.c +++ b/src/main/radwho.c @@ -356,6 +356,8 @@ int main(int argc, char **argv) * Read the file, printing out active entries. */ while (fread(&rt, sizeof(rt), 1, fp) == 1) { + char login[sizeof(rt.login) + 1]; + if (rt.type != P_LOGIN) continue; /* hide logout sessions */ /* @@ -469,11 +471,10 @@ int main(int argc, char **argv) /* * Show the fill name, or not. */ + memcpy(login, rt.login, sizeof(rt.login)); + login[sizeof(rt.login)] = '\0'; + if (showname) { - char login[sizeof(rt.login) + 1]; - memcpy(login, rt.login, sizeof(rt.login)); - login[sizeof(rt.login)] = '\0'; - printf((rawoutput == 0? rfmt1: rfmt1r), login, showcid ? rt.caller_id : @@ -485,7 +486,7 @@ int main(int argc, char **argv) hostname(othername, sizeof(othername), rt.framed_address), eol); } else { printf((rawoutput == 0? rfmt2: rfmt2r), - rt.login, + login, portind, portno, proto(rt.proto, rt.porttype), dotime(rt.time),