evlog_new: store a new copy of peeraddr, not a pointer to a buffer.

Starting in sudo 1.9.14, eventlog_free() will free the peeraddr
member too so it needs to be dynamically allocated.
This commit is contained in:
Todd C. Miller
2023-07-11 13:51:16 -06:00
parent a432aed4f0
commit 2eee45ef96

View File

@@ -143,7 +143,10 @@ evlog_new(TimeSpec *submit_time, InfoMessage **info_msgs, size_t infolen,
} }
/* Client/peer IP address. */ /* Client/peer IP address. */
evlog->peeraddr = closure->ipaddr; if ((evlog->peeraddr = strdup(closure->ipaddr)) == NULL) {
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
goto bad;
}
/* Submit time. */ /* Submit time. */
if (submit_time != NULL) { if (submit_time != NULL) {