Skip to content

Commit c037bd6

Browse files
committed
apparmor: remove no-op permission check in policy_unpack
The patch 736ec75: "AppArmor: policy routines for loading and unpacking policy" from Jul 29, 2010, leads to the following static checker warning: security/apparmor/policy_unpack.c:410 verify_accept() warn: bitwise AND condition is false here security/apparmor/policy_unpack.c:413 verify_accept() warn: bitwise AND condition is false here security/apparmor/policy_unpack.c 392 #define DFA_VALID_PERM_MASK 0xffffffff 393 #define DFA_VALID_PERM2_MASK 0xffffffff 394 395 /** 396 * verify_accept - verify the accept tables of a dfa 397 * @dfa: dfa to verify accept tables of (NOT NULL) 398 * @flags: flags governing dfa 399 * 400 * Returns: 1 if valid accept tables else 0 if error 401 */ 402 static bool verify_accept(struct aa_dfa *dfa, int flags) 403 { 404 int i; 405 406 /* verify accept permissions */ 407 for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) { 408 int mode = ACCEPT_TABLE(dfa)[i]; 409 410 if (mode & ~DFA_VALID_PERM_MASK) 411 return 0; 412 413 if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK) 414 return 0; fixes: 736ec75 ("AppArmor: policy routines for loading and unpacking policy") Reported-by: Dan Carpenter <[email protected]> Signed-off-by: John Johansen <[email protected]>
1 parent 0a6b292 commit c037bd6

File tree

1 file changed

+0
-32
lines changed

1 file changed

+0
-32
lines changed

security/apparmor/policy_unpack.c

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -389,32 +389,6 @@ static int unpack_strdup(struct aa_ext *e, char **string, const char *name)
389389
return res;
390390
}
391391

392-
#define DFA_VALID_PERM_MASK 0xffffffff
393-
#define DFA_VALID_PERM2_MASK 0xffffffff
394-
395-
/**
396-
* verify_accept - verify the accept tables of a dfa
397-
* @dfa: dfa to verify accept tables of (NOT NULL)
398-
* @flags: flags governing dfa
399-
*
400-
* Returns: 1 if valid accept tables else 0 if error
401-
*/
402-
static bool verify_accept(struct aa_dfa *dfa, int flags)
403-
{
404-
int i;
405-
406-
/* verify accept permissions */
407-
for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) {
408-
int mode = ACCEPT_TABLE(dfa)[i];
409-
410-
if (mode & ~DFA_VALID_PERM_MASK)
411-
return 0;
412-
413-
if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK)
414-
return 0;
415-
}
416-
return 1;
417-
}
418392

419393
/**
420394
* unpack_dfa - unpack a file rule dfa
@@ -445,15 +419,9 @@ static struct aa_dfa *unpack_dfa(struct aa_ext *e)
445419
if (IS_ERR(dfa))
446420
return dfa;
447421

448-
if (!verify_accept(dfa, flags))
449-
goto fail;
450422
}
451423

452424
return dfa;
453-
454-
fail:
455-
aa_put_dfa(dfa);
456-
return ERR_PTR(-EPROTO);
457425
}
458426

459427
/**

0 commit comments

Comments
 (0)