git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@647 77e5149b-7576-45b1-b177-96237e5ba77b
Tomasz Kojm authored on 2004/07/01 10:24:20... | ... |
@@ -76,6 +76,7 @@ Jens Elkner <elkner*linofee.org> |
76 | 76 |
Jason Englander <jason*englanders.cc> |
77 | 77 |
Tony Finch <dot*dotat.at> |
78 | 78 |
David Ford <david+cert*blue-labs.org> |
79 |
+Piotr Gackiewicz <gacek*intertele.pl> |
|
79 | 80 |
Dean Gaudet <dean-clamav*arctic.org> |
80 | 81 |
Michel Gaudet <Michel.Gaudet*ehess.fr> |
81 | 82 |
Philippe Gay <ph.gay*free.fr> |
... | ... |
@@ -1,3 +1,8 @@ |
1 |
+Thu Jul 1 03:18:04 CEST 2004 (tk) |
|
2 |
+---------------------------------- |
|
3 |
+ * clamdscan: fix bug (introduced in -20040622) in stream scanning in TCP |
|
4 |
+ mode. Patch by Piotr Gackiewicz <gacek*intertele.pl>. |
|
5 |
+ |
|
1 | 6 |
Wed Jun 30 20:49:46 BST 2004 (njh) |
2 | 7 |
---------------------------------- |
3 | 8 |
* libclamav/mbox.c: Some TR.Happy99.SKA were getting through |
... | ... |
@@ -95,6 +95,8 @@ int dsstream(int sockd) |
95 | 95 |
{ |
96 | 96 |
int wsockd, loopw = 60, bread, port, infected = 0; |
97 | 97 |
struct sockaddr_in server; |
98 |
+ struct sockaddr_in peer; |
|
99 |
+ int peer_size; |
|
98 | 100 |
char buff[4096], *pt; |
99 | 101 |
|
100 | 102 |
if(write(sockd, "STREAM", 6) <= 0) { |
... | ... |
@@ -129,6 +131,15 @@ int dsstream(int sockd) |
129 | 129 |
server.sin_family = AF_INET; |
130 | 130 |
server.sin_port = htons(port); |
131 | 131 |
|
132 |
+ peer_size = sizeof(peer); |
|
133 |
+ if(getpeername(sockd, (struct sockaddr *) &peer, &peer_size) < 0) { |
|
134 |
+ perror("getpeername()"); |
|
135 |
+ mprintf("@Can't get socket peer name.\n"); |
|
136 |
+ return -1; |
|
137 |
+ } |
|
138 |
+ |
|
139 |
+ server.sin_addr.s_addr = peer.sin_addr.s_addr; |
|
140 |
+ |
|
132 | 141 |
if(connect(wsockd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) < 0) { |
133 | 142 |
close(wsockd); |
134 | 143 |
perror("connect()"); |