diff options
author | Dan Williams <dcbw@redhat.com> | 2012-01-10 18:14:40 -0600 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2012-01-10 18:14:40 -0600 |
commit | ff838972cfef660cabfe7224d50459d5148b5f64 (patch) | |
tree | 572b8214df0ae952a631d2ac6586da5f442761a4 /libqcdm | |
parent | 86e3ab154032cb2d348c7ee8be26628a8ef37554 (diff) |
qcdm: don't segfault getting number of log items
Not sure how this worked before at all.
Diffstat (limited to 'libqcdm')
-rw-r--r-- | libqcdm/src/commands.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/libqcdm/src/commands.c b/libqcdm/src/commands.c index d48d1e9f..f21b9235 100644 --- a/libqcdm/src/commands.c +++ b/libqcdm/src/commands.c @@ -1157,13 +1157,15 @@ qcdm_cmd_ext_logmask_new (char *buf, memset (cmd, 0, sizeof (*cmd)); cmd->code = DIAG_CMD_EXT_LOGMASK; - for (i = 0; items[i] > 0; i++) { - qcdm_warn_if_fail (items[i] > 0); - qcdm_warn_if_fail (items[i] < 4095); - cmd->mask[items[i] / 8] |= 1 << items[i] % 8; - - if (items[i] > highest) - highest = items[i]; + if (items) { + for (i = 0; items[i] > 0; i++) { + qcdm_warn_if_fail (items[i] > 0); + qcdm_warn_if_fail (items[i] < 4095); + cmd->mask[items[i] / 8] |= 1 << items[i] % 8; + + if (items[i] > highest) + highest = items[i]; + } } qcdm_return_val_if_fail (highest <= maxlog, 0); |