BUG/MINOR: errors: handle malloc failure in usermsgs_put()
usermsgs_buf.size is set without first checking if previous malloc attempt succeeded. This could fool the buffer API into assuming that the buffer is initialized, resulting in unsafe read/writes. Guarding usermsgs_buf.size assignment with the malloc attempt result to make the buffer initialization safe against malloc failures. This partially fixes GH #2130. It should be backported up to 2.6.
This commit is contained in:
parent
4cc2714ae2
commit
d4dba38ab1
|
@ -229,7 +229,8 @@ static void usermsgs_put(const struct ist *msg)
|
|||
/* Allocate the buffer if not already done. */
|
||||
if (unlikely(b_is_null(&usermsgs_buf))) {
|
||||
usermsgs_buf.area = malloc(USER_MESSAGES_BUFSIZE * sizeof(char));
|
||||
usermsgs_buf.size = USER_MESSAGES_BUFSIZE;
|
||||
if (usermsgs_buf.area)
|
||||
usermsgs_buf.size = USER_MESSAGES_BUFSIZE;
|
||||
}
|
||||
|
||||
if (likely(!b_is_null(&usermsgs_buf))) {
|
||||
|
|
Loading…
Reference in New Issue