ls crashes printing (some) ACLs
|Assignee:||Rich Lowe||% Done:|
|Category:||cmd - userland programs|
metropolis:~> mdb /bin/ls :r -Val /etc ... 080476c8 libsec.so.1`acl_printacl+9(504, 50, 1, 805487d) 08047738 pentry+0x803(806f348) 08047788 pem+0x181(8095cfc, 80960c0, 1, 0, 1ac, 806b7c0) 08047a78 main+0x1248(3, 8047ab0, 8047ac0, 8047a6c) 08047aa4 _start+0x7d(3, 8047b98, 8047b9b, 8047ba0, 0, 8047ba5)
It seems moderately obvious that the *aclp argument (the first) to acl_printacl is invalid.
I think that my /etc is sufficiently normal that this should be repeatable, though I confess that I don't have a convenient way to view the ACL of the problem file which isn't ls, which of course crashes.
#1 Updated by Rich Lowe over 3 years ago
- Assignee set to Rich Lowe
- Difficulty changed from Medium to Bite-size
Looks like aclp is not initialized in gstat, so when we hit a symlink (and disable ACL processing, as symlinks can't have ACLs) we're left with whatever was on the stack in aclp, foiling any following aclp != NULL condition).