apparmor: fix '*seclen' is never less than zero
authorJohn Johansen <john.johansen@canonical.com>
Fri, 4 May 2018 08:57:47 +0000 (01:57 -0700)
committerJohn Johansen <john.johansen@canonical.com>
Tue, 8 May 2018 15:34:08 +0000 (08:34 -0700)
commit52e7128ebbdd7b05ba8615efbe410e88a5925a1d
tree0fe567b5838aee30bc7d3a6306bdc92e4c75830d
parent3107e8cb9219cff359b93dde257c030b500e74b7
apparmor: fix '*seclen' is never less than zero

smatch warnings:
security/apparmor/secid.c:162 apparmor_secid_to_secctx() warn: unsigned '*seclen' is never less than zero.

vim +162 security/apparmor/secid.c

   140
   141 int apparmor_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
   142 {
   143 /* TODO: cache secctx and ref count so we don't have to recreate */
   144 struct aa_label *label = aa_secid_to_label(secid);
   145
   146 AA_BUG(!secdata);
   147 AA_BUG(!seclen);
   148
   149 if (!label)
   150 return -EINVAL;
   151
   152 if (secdata)
   153 *seclen = aa_label_asxprint(secdata, root_ns, label,
   154     FLAG_SHOW_MODE | FLAG_VIEW_SUBNS |
   155     FLAG_HIDDEN_UNCONFINED |
   156     FLAG_ABS_ROOT, GFP_ATOMIC);
   157 else
   158 *seclen = aa_label_snxprint(NULL, 0, root_ns, label,
   159     FLAG_SHOW_MODE | FLAG_VIEW_SUBNS |
   160     FLAG_HIDDEN_UNCONFINED |
   161     FLAG_ABS_ROOT);
 > 162 if (*seclen < 0)
   163 return -ENOMEM;
   164
   165 return 0;
   166 }
   167

Fixes: c092921219d2 ("apparmor: add support for mapping secids and using secctxes")
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/secid.c