]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
ntp_restrict.c:
authorFrank Kardel <kardel@ntp.org>
Sun, 19 Mar 2006 07:04:21 +0000 (07:04 +0000)
committerFrank Kardel <kardel@ntp.org>
Sun, 19 Mar 2006 07:04:21 +0000 (07:04 +0000)
  null deref: complete linked list handling beginng condition (Coverity CID 986 NetBSD Scan 5)

bk: 441d0275o2A4GIpfDSexX22hpPkl1w

ntpd/ntp_restrict.c

index ede42257d2367caa5124f7e33eada79e642dd54b..25047f91645854cf12b9a68cd5abb52c25b7e2cc 100644 (file)
@@ -527,8 +527,13 @@ hack_restrict(
                                rl6->addr6 = addr6;
                                rl6->mask6 = mask6;
                                rl6->mflags = (u_short)mflags;
-                               rl6->next = rlprev6->next;
-                               rlprev6->next = rl6;
+                               if (rlprev6) {
+                                       rl6->next = rlprev6->next;
+                                       rlprev6->next = rl6;
+                               } else {
+                                       rl6->next = restrictlist6;
+                                       restrictlist6 = rl6;
+                               }
                                restrictcount6++;
                        }
                        if ((rl6->flags ^ (u_short)flags) &
@@ -564,7 +569,11 @@ hack_restrict(
                        if (rl6 != 0 &&
                            !IN6_IS_ADDR_UNSPECIFIED(&rl6->addr6)
                            && !(rl6->mflags & RESM_INTERFACE)) {
-                               rlprev6->next = rl6->next;
+                               if (rlprev6) {
+                                       rlprev6->next = rl6->next;
+                               } else {
+                                       restrictlist6 = rl6->next;
+                               }
                                restrictcount6--;
                                if (rl6->flags & RES_LIMITED) {
                                        res_limited_refcnt6--;