svn commit: r310608 - head/libexec/talkd
Xin LI
delphij at FreeBSD.org
Mon Dec 26 17:10:42 UTC 2016
Author: delphij
Date: Mon Dec 26 17:10:41 2016
New Revision: 310608
URL: https://svnweb.freebsd.org/changeset/base/310608
Log:
Avoid use after free.
Reported by: Clang static code analyzer
MFC after: 2 weeks
Modified:
head/libexec/talkd/table.c
Modified: head/libexec/talkd/table.c
==============================================================================
--- head/libexec/talkd/table.c Mon Dec 26 16:45:00 2016 (r310607)
+++ head/libexec/talkd/table.c Mon Dec 26 17:10:41 2016 (r310608)
@@ -82,14 +82,15 @@ static TABLE_ENTRY *table = NIL;
CTL_MSG *
find_match(CTL_MSG *request)
{
- TABLE_ENTRY *ptr;
+ TABLE_ENTRY *ptr, *next;
time_t current_time;
gettimeofday(&tp, NULL);
current_time = tp.tv_sec;
if (debug)
print_request("find_match", request);
- for (ptr = table; ptr != NIL; ptr = ptr->next) {
+ for (ptr = table; ptr != NIL; ptr = next) {
+ next = ptr->next;
if ((ptr->time - current_time) > MAX_LIFE) {
/* the entry is too old */
if (debug)
@@ -115,7 +116,7 @@ find_match(CTL_MSG *request)
CTL_MSG *
find_request(CTL_MSG *request)
{
- TABLE_ENTRY *ptr;
+ TABLE_ENTRY *ptr, *next;
time_t current_time;
gettimeofday(&tp, NULL);
@@ -126,7 +127,8 @@ find_request(CTL_MSG *request)
*/
if (debug)
print_request("find_request", request);
- for (ptr = table; ptr != NIL; ptr = ptr->next) {
+ for (ptr = table; ptr != NIL; ptr = next) {
+ next = ptr->next;
if ((ptr->time - current_time) > MAX_LIFE) {
/* the entry is too old */
if (debug)
More information about the svn-src-all
mailing list