mirror of
https://github.com/SELinuxProject/selinux
synced 2025-01-20 12:30:45 +00:00
libsepol: NULL pointer offset fix
On the first loop iteration the variables `r_buf` and `reason_buf_used` are NULL respective 0. Please UBSAN by not adding them but instead directly assign NULL. services.c:800:16: runtime error: applying zero offset to null pointer #0 0x4d4fce in constraint_expr_eval_reason ./libsepol/src/services.c:800:16 #1 0x4cf31a in sepol_validate_transition_reason_buffer ./libsepol/src/services.c:1079:8 Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
This commit is contained in:
parent
71bcdcc943
commit
2d35696db3
@ -797,7 +797,7 @@ mls_ops:
|
||||
|
||||
for (x = 0; buffers[x] != NULL; x++) {
|
||||
while (1) {
|
||||
p = *r_buf + reason_buf_used;
|
||||
p = *r_buf ? (*r_buf + reason_buf_used) : NULL;
|
||||
len = snprintf(p, reason_buf_len - reason_buf_used,
|
||||
"%s", buffers[x]);
|
||||
if (len < 0 || len >= reason_buf_len - reason_buf_used) {
|
||||
|
Loading…
Reference in New Issue
Block a user