add some extra sanity checking to blinklist and fix a line ending in dnswin
authorplugwash <plugwash@p10link.net>
Mon, 15 Jun 2009 20:55:41 +0000 (20:55 +0000)
committerplugwash <plugwash@p10link.net>
Mon, 15 Jun 2009 20:55:41 +0000 (20:55 +0000)
git-svn-id: file:///svnroot/lcore/trunk@48 b1de8a11-f9be-4011-bde0-cc7ace90066a

blinklist.pas
dnswin.pas

index 27232f41ef6687148ac947825dd56899d88d6697..7391bdf5630dc52785faf92880a06572fa72b78d 100755 (executable)
@@ -55,10 +55,13 @@ var
 \r
 implementation\r
 \r
+uses sysutils;\r
+\r
 procedure linklistadd(var baseptr:tlinklist;newptr:tlinklist);\r
 var\r
   p:tlinklist;\r
 begin\r
+  if (newptr=baseptr) or assigned(newptr.prev) then raise exception.create('linklist double insertion detected');\r
   p := baseptr;\r
   baseptr := newptr;\r
   baseptr.prev := nil;\r
@@ -71,12 +74,15 @@ begin
   if item = baseptr then baseptr := item.next;\r
   if item.prev <> nil then item.prev.next := item.next;\r
   if item.next <> nil then item.next.prev := item.prev;\r
+  item.prev := nil;\r
+  item.next := nil;\r
 end;\r
 \r
 procedure linklist2add(var baseptr,newptr:tlinklist2);\r
 var\r
   p:tlinklist2;\r
 begin\r
+  if (newptr=baseptr) or assigned(newptr.prev) then raise exception.create('linklist2 double insertion detected');\r
   p := baseptr;\r
   baseptr := newptr;\r
   baseptr.prev2 := nil;\r
@@ -89,6 +95,8 @@ begin
   if item = baseptr then baseptr := item.next2;\r
   if item.prev2 <> nil then item.prev2.next2 := item.next2;\r
   if item.next2 <> nil then item.next2.prev2 := item.prev2;\r
+  item.prev2 := nil;\r
+  item.next2 := nil;\r
 end;\r
 \r
 constructor tlinklist.create;\r
index 9f66cda0dcafa3e6876aafe349a4107fcefda00e..e9c2a16d1b30552806351797720adb8b75500756 100755 (executable)
@@ -233,7 +233,7 @@ var
   getnameinforesult : integer;\r
 begin\r
 \r
-  makeinaddrv(ip,'1',sa);
+  makeinaddrv(ip,'1',sa);\r
   populateprocvars;\r
   setlength(result,1025);\r
   getnameinforesult := getnameinfo(@sa,sizeof(tinetsockaddrv),pchar(result),length(result),nil,0,0);\r