⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 patches

📁 clamav 0.93rc1 - 最新版本的源代码
💻
📖 第 1 页 / 共 2 页
字号:
+ 						mprintf("~%s: Removed.\n", buff);+ 						logg("~%s: Removed.\n", buff);+ 					}+ 				}+ 			}+ 		}+ + 		if(strstr(buff, "ERROR\n")) {+ 			logg("%s", buff);+ 			waserror = 1;+ 		}+ 	}+ + 	return infected ? infected : (waserror ? -1 : 0);+ }+ + static int+ get_a_line(int sockd, char *buf, size_t len)+ {+ 	char *ptr;+ + 	for(ptr = buf; ptr < &buf[len]; ptr++) {+ 		/* FIXME: very inefficient to call recv so many times */+ 		if(recv(sockd, ptr, sizeof(char), 0) <= 0)+ 			return 0;+ 		if(*ptr == '\n') {+ 			*++ptr = '\0';+ 			return 1;+ 		}+ 	}+ 	return 1;+ }+ #else  static int dsresult(int sockd, const struct optstruct *opt)  {  	int infected = 0, waserror = 0;****************** 64,71 ****    #ifndef C_OS2      if((fd = fdopen(dup(sockd), "r")) == NULL) {! #else /* FIXME: accoriding to YD OS/2 does not support dup() for sockets */!     if((fd = fdopen(sockd, "r")) == NULL) {  #endif  	logg("^Can't open descriptor for reading.\n");  	return -1;--- 141,148 ----    #ifndef C_OS2      if((fd = fdopen(dup(sockd), "r")) == NULL) {! #else /* FIXME: according to YD OS/2 does not support dup() for sockets */!     if((fd = fdopen(sockd, "rb")) == NULL) {  #endif  	logg("^Can't open descriptor for reading.\n");  	return -1;****************** 90,101 ****  		} else {  		    *pt = 0;  		    if(unlink(buff)) {! 			mprintf("~%s: Can't remove.\n", buff);! 			logg("~%s: Can't remove.\n", buff);  			notremoved++;  		    } else {! 			mprintf("~%s: Removed.\n", buff);! 			logg("~%s: Removed.\n", buff);  		    }  		}  	    }--- 167,178 ----  		} else {  		    *pt = 0;  		    if(unlink(buff)) {! 			mprintf("%s: Can't remove.\n", buff);! 			logg("%s: Can't remove.\n", buff);  			notremoved++;  		    } else {! 			mprintf("%s: Removed.\n", buff);! 			logg("%s: Removed.\n", buff);  		    }  		}  	    }****************** 113,118 ****--- 190,196 ----        return infected ? infected : (waserror ? -1 : 0);  }+ #endif	/*C_WINDOWS*/    static int dsfile(int sockd, const char *scantype, const char *filename, const struct optstruct *opt)  {****************** 123,129 ****      scancmd = malloc(strlen(filename) + 20);      sprintf(scancmd, "%s %s", scantype, filename);  !     if(write(sockd, scancmd, strlen(scancmd)) <= 0) {  	logg("^Can't write to the socket.\n");  	free(scancmd);  	return -1;--- 201,207 ----      scancmd = malloc(strlen(filename) + 20);      sprintf(scancmd, "%s %s", scantype, filename);  !     if(send(sockd, scancmd, strlen(scancmd), 0) <= 0) {  	logg("^Can't write to the socket.\n");  	free(scancmd);  	return -1;****************** 148,161 ****  	char buff[4096], *pt;    !     if(write(sockd, "STREAM", 6) <= 0) {  	logg("^Can't write to the socket.\n");  	return 2;      }        while(loopw) {  	memset(buff, 0, sizeof(buff));! 	if(read(sockd, buff, sizeof(buff)) > 0) {  	    if((pt = strstr(buff, "PORT"))) {  		pt += 5;  		sscanf(pt, "%d", &port);--- 226,239 ----  	char buff[4096], *pt;    !     if(send(sockd, "STREAM", 6, 0) <= 0) {  	logg("^Can't write to the socket.\n");  	return 2;      }        while(loopw) {  	memset(buff, 0, sizeof(buff));! 	if(recv(sockd, buff, sizeof(buff), 0) > 0) {  	    if((pt = strstr(buff, "PORT"))) {  		pt += 5;  		sscanf(pt, "%d", &port);****************** 201,207 ****      }        if(connect(wsockd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) < 0) {! 	close(wsockd);  	perror("connect()");  	logg("^Can't connect to clamd [port: %d].\n", port);  	return -1;--- 279,285 ----      }        if(connect(wsockd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) < 0) {! 	closesocket(wsockd);  	perror("connect()");  	logg("^Can't connect to clamd [port: %d].\n", port);  	return -1;****************** 210,220 ****      while((bread = read(0, buff, sizeof(buff))) > 0) {  	if(write(wsockd, buff, bread) <= 0) {  	    logg("^Can't write to the socket.\n");! 	    close(wsockd);  	    return -1;  	}      }!     close(wsockd);        memset(buff, 0, sizeof(buff));      while((bread = read(sockd, buff, sizeof(buff))) > 0) {--- 288,298 ----      while((bread = read(0, buff, sizeof(buff))) > 0) {  	if(write(wsockd, buff, bread) <= 0) {  	    logg("^Can't write to the socket.\n");! 	    closesocket(wsockd);  	    return -1;  	}      }!     closesocket(wsockd);        memset(buff, 0, sizeof(buff));      while((bread = read(sockd, buff, sizeof(buff))) > 0) {****************** 259,265 ****--- 337,345 ----    static int dconnect(const struct optstruct *opt)  {+ #ifndef	C_WINDOWS  	struct sockaddr_un server;+ #endif  	struct sockaddr_in server2;  	struct hostent *he;  	struct cfgstruct *copt;****************** 276,288 ****--- 356,374 ----  	return -1;      }  + #ifndef	C_WINDOWS      memset((char *) &server, 0, sizeof(server));+ #endif      memset((char *) &server2, 0, sizeof(server2));        /* Set default address to connect to */      server2.sin_addr.s_addr = inet_addr("127.0.0.1");            if((cpt = cfgopt(copt, "LocalSocket"))->enabled) {+ #ifdef	C_WINDOWS+ 	logg("^LocalSocket is not supported under Windows");+ 	return -1;+ #else    	server.sun_family = AF_UNIX;  	strncpy(server.sun_path, cpt->strarg, sizeof(server.sun_path));****************** 301,308 ****  	    freecfg(copt);  	    return -1;  	}  !     } else if((cpt = cfgopt(copt, "TCPSocket"))->enabled) {    	if((sockd = socket(SOCKET_INET, SOCK_STREAM, 0)) < 0) {  	    perror("socket()");--- 387,404 ----  	    freecfg(copt);  	    return -1;  	}+ #endif+   + 	} else if((cpt = cfgopt(copt, "TCPSocket"))->enabled) {+ #ifdef  C_WINDOWS+ 	WSADATA wsaData;  ! 	if(WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR) {! 		logg("!Error at WSAStartup(): %d\n", WSAGetLastError());! 		return -1;! 	}! #endif!       	if((sockd = socket(SOCKET_INET, SOCK_STREAM, 0)) < 0) {  	    perror("socket()");****************** 316,322 ****    	if((cpt = cfgopt(copt, "TCPAddr"))->enabled) {  	    if ((he = gethostbyname(cpt->strarg)) == 0) {! 		close(sockd);  		perror("gethostbyname()");  		logg("^Can't lookup clamd hostname.\n");  		freecfg(copt);--- 412,418 ----    	if((cpt = cfgopt(copt, "TCPAddr"))->enabled) {  	    if ((he = gethostbyname(cpt->strarg)) == 0) {! 		closesocket(sockd);  		perror("gethostbyname()");  		logg("^Can't lookup clamd hostname.\n");  		freecfg(copt);****************** 326,332 ****  	}    	if(connect(sockd, (struct sockaddr *) &server2, sizeof(struct sockaddr_in)) < 0) {! 	    close(sockd);  	    perror("connect()");  	    logg("^Can't connect to clamd.\n");  	    freecfg(copt);--- 422,428 ----  	}    	if(connect(sockd, (struct sockaddr *) &server2, sizeof(struct sockaddr_in)) < 0) {! 	    closesocket(sockd);  	    perror("connect()");  	    logg("^Can't connect to clamd.\n");  	    freecfg(copt);****************** 396,402 ****  	else  	    errors++;  ! 	close(sockd);        } else if(!strcmp(opt->filename, "-")) { /* scan data from stdin */  	if((sockd = dconnect(opt)) < 0)--- 492,498 ----  	else  	    errors++;  ! 	closesocket(sockd);        } else if(!strcmp(opt->filename, "-")) { /* scan data from stdin */  	if((sockd = dconnect(opt)) < 0)****************** 407,413 ****  	else  	    errors++;  ! 	close(sockd);        } else {  	int x;--- 503,509 ----  	else  	    errors++;  ! 	closesocket(sockd);        } else {  	int x;****************** 441,447 ****  			else  			    errors++;  ! 			close(sockd);  			break;    		    default:--- 537,543 ----  			else  			    errors++;  ! 			closesocket(sockd);  			break;    		    default:****************** 464,470 ****--- 560,568 ----  	struct stat ofstat, mfstat;  	int n, len, movefilename_size;  	int moveflag = opt_check(opt, "move");+ #ifndef	C_WINDOWS  	struct utimbuf ubuf;+ #endif          if((moveflag && !(movedir = opt_arg(opt, "move"))) ||****************** 551,559 ****--- 649,660 ----  	if(chown(movefilename, ofstat.st_uid, ofstat.st_gid) == -1)  	    logg("^chown() failed for %s: %s\n", movefilename, strerror(errno));  + + #ifndef	C_WINDOWS  	ubuf.actime = ofstat.st_atime;  	ubuf.modtime = ofstat.st_mtime;  	utime(movefilename, &ubuf);+ #endif    	if(moveflag && unlink(filename)) {  	    logg("^cannot unlink '%s': %s\n", filename, strerror(errno));*** /home/njh/src/clamav-devel/trunk/./clamdscan/clamdscan.c	2008-01-21 20:56:26.000000000 +0000--- ./clamdscan/clamdscan.c	2008-01-21 20:52:50.000000000 +0000****************** 15,30 ****   *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,   *  MA 02110-1301, USA.   */    #if HAVE_CONFIG_H  #include "clamav-config.h"  #endif-   #include <stdio.h>  #include <string.h>  #include <stdlib.h>  #include <unistd.h>  #include <sys/time.h>  #include <time.h>  #include <signal.h>  --- 15,42 ----   *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,   *  MA 02110-1301, USA.   */+  + #ifdef	_MSC_VER+ #include <windows.h>+ #include <winsock.h>+ #endif    #if HAVE_CONFIG_H  #include "clamav-config.h"  #endif  #include <stdio.h>  #include <string.h>  #include <stdlib.h>+ #ifdef	HAVE_UNISTD_H  #include <unistd.h>+ #endif+ #ifdef	C_WINDOWS+ #ifdef	CL_THREAD_SAFE+ #include <pthread.h>+ #endif+ #else  #include <sys/time.h>+ #endif  #include <time.h>  #include <signal.h>  ****************** 61,67 ****--- 73,81 ----  {  	int ds, dms, ret, infected;  	struct timeval t1, t2;+ #ifndef	C_WINDOWS  	struct timezone tz;+ #endif  	time_t starttime;  	struct optstruct *opt;  	const char *clamdscan_accepted[] = { "help", "version", "verbose", "quiet",****************** 70,75 ****--- 84,96 ----  				  "disable-summary", "multiscan", NULL };    + #ifdef	C_WINDOWS+ 	if(!pthread_win32_process_attach_np()) {+ 		mprintf("!Can't start the win32 pthreads layer\n");+ 		return 1;+ 	}+ #endif+       opt = opt_parse(argc, argv, clamscan_shortopt, clamscan_longopt, clamdscan_accepted);      if(!opt) {  	mprintf("!Can't parse the command line\n");****************** 117,129 ****      time(&starttime);      /* ctime() does \n, but I need it once more */  !     gettimeofday(&t1, &tz);        ret = client(opt, &infected);        /* TODO: Implement STATUS in clamd */      if(!opt_check(opt, "disable-summary") && !opt_check(opt, "no-summary")) {  	gettimeofday(&t2, &tz);  	ds = t2.tv_sec - t1.tv_sec;  	dms = t2.tv_usec - t1.tv_usec;  	ds -= (dms < 0) ? (1):(0);--- 138,158 ----      time(&starttime);      /* ctime() does \n, but I need it once more */  ! #ifdef	C_WINDOWS! 	gettimeofday(&t1, NULL);! #else! 	gettimeofday(&t1, &tz);! #endif        ret = client(opt, &infected);        /* TODO: Implement STATUS in clamd */      if(!opt_check(opt, "disable-summary") && !opt_check(opt, "no-summary")) {+ #ifdef	C_WINDOWS+ 	gettimeofday(&t2, NULL);+ #else  	gettimeofday(&t2, &tz);+ #endif  	ds = t2.tv_sec - t1.tv_sec;  	dms = t2.tv_usec - t1.tv_usec;  	ds -= (dms < 0) ? (1):(0);****************** 140,145 ****--- 169,183 ----      }        opt_free(opt);+ + #ifdef	C_WINDOWS+ 	WSACleanup();+ 	if(!pthread_win32_process_detach_np()) {+ 		mprintf("!Can't stop the win32 pthreads layer\n");+ 		return 1;+ 	}+ #endif+       exit(ret);  }  *** /home/njh/src/clamav-devel/trunk/./libclamunrar_iface/unrar_iface.c	2007-12-26 13:58:50.000000000 +0000--- ./libclamunrar_iface/unrar_iface.c	2008-02-25 15:48:36.000000000 +0000****************** 542,544 ****--- 542,564 ----      free(state->unpack_data);      free(state->comment_dir);  }+ + #ifdef	C_WINDOWS+ /*+  * A copy is needed here to avoid a cyclic dependancy libclamunrar_iface<->libclamav+  * e.g. see the comment in bug 775 about dropping the old internal snprintf+  * which didn't have this problem and bug 785+  */+ #include <stdarg.h>+ static int+ snprintf(char *str, size_t size, const char *format, ...)+ {+ 	int ret;+ + 	va_list args;+ 	va_start(args, format);+ 	ret = _vsnprintf_s(str, size, _TRUNCATE, format, args);+ 	va_end(args);+ 	return ret;+ }+ #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -