Browse code

freshclam/mirman.c: fix handling of IPv6 addresses

git-svn: trunk@3982

Tomasz Kojm authored on 2008/07/24 07:05:30
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Wed Jul 23 23:44:59 CEST 2008 (tk)
2
+----------------------------------
3
+  * freshclam/mirman.c: fix handling of IPv6 addresses
4
+
1 5
 Wed Jul 23 21:53:10 CEST 2008 (acab)
2 6
 ------------------------------------
3 7
   * clamav-milter: use thread safe resolv calls - bb#668 
... ...
@@ -123,7 +123,7 @@ int mirman_check(uint32_t *ip, int af, struct mirdat *mdat, struct mirdat_ip **m
123 123
 
124 124
     for(i = 0; i < mdat->num; i++) {
125 125
 
126
-	if((af == AF_INET && mdat->mirtab[i].ip4 == *ip) || (af == AF_INET6 && !memcmp(mdat->mirtab[i].ip6, ip, 4))) {
126
+	if((af == AF_INET && mdat->mirtab[i].ip4 == *ip) || (af == AF_INET6 && !memcmp(mdat->mirtab[i].ip6, ip, 4 * sizeof(uint32_t)))) {
127 127
 
128 128
 	    if(!mdat->mirtab[i].atime) {
129 129
 		if(md)
... ...
@@ -164,7 +164,7 @@ int mirman_update(uint32_t *ip, int af, struct mirdat *mdat, uint8_t broken)
164 164
 	return 0;
165 165
 
166 166
     for(i = 0; i < mdat->num; i++) {
167
-	if((af == AF_INET && mdat->mirtab[i].ip4 == *ip) || (af == AF_INET6 && !memcmp(mdat->mirtab[i].ip6, ip, 4))) {
167
+	if((af == AF_INET && mdat->mirtab[i].ip4 == *ip) || (af == AF_INET6 && !memcmp(mdat->mirtab[i].ip6, ip, 4 * sizeof(uint32_t)))) {
168 168
 	    found = 1;
169 169
 	    break;
170 170
 	}
... ...
@@ -196,7 +196,7 @@ int mirman_update(uint32_t *ip, int af, struct mirdat *mdat, uint8_t broken)
196 196
 	    mdat->mirtab[mdat->num].ip4 = *ip;
197 197
 	} else {
198 198
 	    mdat->mirtab[mdat->num].ip4 = 0;
199
-	    memcpy(mdat->mirtab[mdat->num].ip6, ip, 4);
199
+	    memcpy(mdat->mirtab[mdat->num].ip6, ip, 4 * sizeof(uint32_t));
200 200
 	}
201 201
 	mdat->mirtab[mdat->num].atime = 0;
202 202
 	mdat->mirtab[mdat->num].succ = 0;