aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-08-06 19:46:21 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-08-06 19:46:21 +0200
commitc8e29317e97ee595a66314275c163a5ce55fcca9 (patch)
treed9b1e841f018d561fbff5d4b47c7b21bf303a85b
parenta894a4beddf9c132556b001925ea3e8e0881e273 (diff)
downloadbusybox-c8e29317e97ee595a66314275c163a5ce55fcca9.tar.gz
adjtimex: zero-fill whole structure, to be on the safe side
function old new delta adjtimex_main 395 406 +11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--miscutils/adjtimex.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/miscutils/adjtimex.c b/miscutils/adjtimex.c
index 0830734ee..a39c4f5cf 100644
--- a/miscutils/adjtimex.c
+++ b/miscutils/adjtimex.c
@@ -90,13 +90,14 @@ int adjtimex_main(int argc UNUSED_PARAM, char **argv)
unsigned opt;
char *opt_o, *opt_f, *opt_p, *opt_t;
struct timex txc;
- int i, ret;
+ int ret;
const char *descript;
+ memset(&txc, 0, sizeof(txc));
+
opt_complementary = "=0"; /* no valid non-option parameters */
opt = getopt32(argv, "qo:f:p:t:",
&opt_o, &opt_f, &opt_p, &opt_t);
- txc.modes = 0;
//if (opt & 0x1) // -q
if (opt & 0x2) { // -o
txc.offset = xatol(opt_o);
@@ -116,14 +117,13 @@ int adjtimex_main(int argc UNUSED_PARAM, char **argv)
}
ret = adjtimex(&txc);
-
- if (ret < 0) {
+ if (ret < 0)
bb_perror_nomsg_and_die();
- }
if (!(opt & OPT_quiet)) {
const char *sep;
const char *name;
+ int i;
printf(
" mode: %d\n"
@@ -132,8 +132,9 @@ int adjtimex_main(int argc UNUSED_PARAM, char **argv)
" maxerror: %ld\n"
" esterror: %ld\n"
" status: %d (",
- txc.modes, txc.offset, txc.freq, txc.maxerror,
- txc.esterror, txc.status);
+ txc.modes, txc.offset, txc.freq, txc.maxerror,
+ txc.esterror, txc.status
+ );
/* representative output of next code fragment:
* "PLL | PPSTIME"
@@ -159,9 +160,11 @@ int adjtimex_main(int argc UNUSED_PARAM, char **argv)
" time.tv_sec: %ld\n"
" time.tv_usec: %ld\n"
" return value: %d (%s)\n",
- txc.constant,
- txc.precision, txc.tolerance, txc.tick,
- (long)txc.time.tv_sec, (long)txc.time.tv_usec, ret, descript);
+ txc.constant,
+ txc.precision, txc.tolerance, txc.tick,
+ (long)txc.time.tv_sec, (long)txc.time.tv_usec,
+ ret, descript
+ );
}
return 0;