git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@647 77e5149b-7576-45b1-b177-96237e5ba77b
| ... | ... |
@@ -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()");
|