summaryrefslogtreecommitdiff
path: root/libqcdm
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-01-10 18:14:40 -0600
committerDan Williams <dcbw@redhat.com>2012-01-10 18:14:40 -0600
commitff838972cfef660cabfe7224d50459d5148b5f64 (patch)
tree572b8214df0ae952a631d2ac6586da5f442761a4 /libqcdm
parent86e3ab154032cb2d348c7ee8be26628a8ef37554 (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.c16
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);