📄 patches
字号:
*** /home/njh/src/clamav-devel/trunk/./clamscan/clamscan.c 2008-02-15 09:45:55.000000000 +0000--- ./clamscan/clamscan.c 2008-02-15 11:55:10.000000000 +0000****************** 260,265 ****--- 260,268 ---- return 72; } #endif+ #ifdef _DEBUG+ _CrtDumpMemoryLeaks();+ #endif return ret; }*** /home/njh/src/clamav-devel/trunk/./clamscan/manager.h 2007-12-06 18:32:26.000000000 +0000--- ./clamscan/manager.h 2007-04-21 09:44:22.000000000 +0100****************** 34,37 ****--- 34,42 ---- int scanfile(const char *filename, struct cl_engine *engine, const struct passwd *user, const struct optstruct *opt, const struct cl_limits *limits, unsigned int options); + #ifdef _DEBUG+ /* breaks mspack/qtmd.c :-( */+ #define free(p) _free_dbg(p, _NORMAL_BLOCK)+ #endif+ #endif*** /home/njh/src/clamav-devel/trunk/./clamscan/others.c 2008-02-19 14:17:17.000000000 +0000--- ./clamscan/others.c 2008-02-19 14:17:56.000000000 +0000****************** 77,83 **** /* FIXME: Handle users correctly */ int checkaccess(const char *path, const char *username, int mode) {! return !_access(path, mode); } #else int checkaccess(const char *path, const char *username, int mode)--- 77,83 ---- /* FIXME: Handle users correctly */ int checkaccess(const char *path, const char *username, int mode) {! return _access(path, mode) == 0; } #else int checkaccess(const char *path, const char *username, int mode)*** /home/njh/src/clamav-devel/trunk/./freshclam/manager.c 2008-02-25 15:41:07.000000000 +0000--- ./freshclam/manager.c 2008-02-25 15:43:03.000000000 +0000****************** 49,55 ****--- 49,57 ---- #include <time.h> #include <fcntl.h> #include <sys/stat.h>+ #ifndef C_WINDOWS #include <dirent.h>+ #endif #include <errno.h> #include <zlib.h> ****************** 212,218 **** break; } logg("%cCan't get information about %s: %s\n", logerr ? '!' : '^', hostpt, herr);! close(socketfd); return -1; } --- 214,220 ---- break; } logg("%cCan't get information about %s: %s\n", logerr ? '!' : '^', hostpt, herr);! closesocket(socketfd); return -1; } ****************** 244,250 **** if(connect(socketfd, (struct sockaddr *) &name, sizeof(struct sockaddr_in)) == -1) { #endif logg("Can't connect to port %d of host %s (IP: %s)\n", port, hostpt, ipaddr);! close(socketfd); if((socketfd = getclientsock(localip)) == -1) return -1; --- 246,252 ---- if(connect(socketfd, (struct sockaddr *) &name, sizeof(struct sockaddr_in)) == -1) { #endif logg("Can't connect to port %d of host %s (IP: %s)\n", port, hostpt, ipaddr);! closesocket(socketfd); if((socketfd = getclientsock(localip)) == -1) return -1; ****************** 255,261 **** } } ! close(socketfd); return -2; } --- 257,263 ---- } } ! closesocket(socketfd); return -2; } ****************** 918,924 **** } while((dent = readdir(dir))) {! #ifndef C_INTERIX if(dent->d_ino) #endif {--- 920,926 ---- } while((dent = readdir(dir))) {! #if (!defined(C_INTERIX)) && (!defined(C_WINDOWS)) if(dent->d_ino) #endif {*** /home/njh/src/clamav-devel/trunk/./freshclam/freshclam.c 2008-01-23 11:58:35.000000000 +0000--- ./freshclam/freshclam.c 2008-01-23 11:58:02.000000000 +0000****************** 419,424 ****--- 419,429 ---- #endif /* change the current working directory */+ if(opt_check(opt, "datadir"))+ newdir = opt_arg(opt, "datadir");+ else+ newdir = cfgopt(copt, "DatabaseDirectory")->strarg;+ if(chdir(newdir)) { logg("Can't change dir to %s\n", newdir); opt_free(opt);****************** 493,499 **** opt_free(opt); freecfg(copt); return 70; /* FIXME */! } foreground = 0; mprintf_disabled = 1; }--- 498,504 ---- opt_free(opt); freecfg(copt); return 70; /* FIXME */! } foreground = 0; mprintf_disabled = 1; }*** /home/njh/src/clamav-devel/trunk/./clamd/scanner.c 2008-02-15 09:45:21.000000000 +0000--- ./clamd/scanner.c 2008-02-15 09:50:04.000000000 +0000****************** 440,452 **** if(!bound && !portscan) { logg("!ScanStream: Can't find any free port.\n"); mdprintf(odesc, "Can't find any free port. ERROR\n");! close(sockfd); return -1; } else { listen(sockfd, 1); if(mdprintf(odesc, "PORT %u\n", port) <= 0) { logg("!ScanStream: error transmitting port.\n");! close(sockfd); return -1; } }--- 440,452 ---- if(!bound && !portscan) { logg("!ScanStream: Can't find any free port.\n"); mdprintf(odesc, "Can't find any free port. ERROR\n");! closesocket(sockfd); return -1; } else { listen(sockfd, 1); if(mdprintf(odesc, "PORT %u\n", port) <= 0) { logg("!ScanStream: error transmitting port.\n");! closesocket(sockfd); return -1; } }****************** 455,471 **** case 0: /* timeout */ mdprintf(odesc, "Accept timeout. ERROR\n"); logg("!ScanStream %u: accept timeout.\n", port);! close(sockfd); return -1; case -1: mdprintf(odesc, "Accept poll. ERROR\n"); logg("!ScanStream %u: accept poll failed.\n", port);! close(sockfd); return -1; } if((acceptd = accept(sockfd, NULL, NULL)) == -1) {! close(sockfd); mdprintf(odesc, "accept() ERROR\n"); logg("!ScanStream %u: accept() failed.\n", port); return -1;--- 455,471 ---- case 0: /* timeout */ mdprintf(odesc, "Accept timeout. ERROR\n"); logg("!ScanStream %u: accept timeout.\n", port);! closesocket(sockfd); return -1; case -1: mdprintf(odesc, "Accept poll. ERROR\n"); logg("!ScanStream %u: accept poll failed.\n", port);! closesocket(sockfd); return -1; } if((acceptd = accept(sockfd, NULL, NULL)) == -1) {! closesocket(sockfd); mdprintf(odesc, "accept() ERROR\n"); logg("!ScanStream %u: accept() failed.\n", port); return -1;****************** 475,482 **** if(cli_gentempfd(NULL, &tmpname, &tmpd)) { shutdown(sockfd, 2);! close(sockfd);! close(acceptd); mdprintf(odesc, "cli_gentempfd() failed. ERROR\n"); logg("!ScanStream %u: Can't create temporary file.\n", port); return -1;--- 475,482 ---- if(cli_gentempfd(NULL, &tmpname, &tmpd)) { shutdown(sockfd, 2);! closesocket(sockfd);! closesocket(acceptd); mdprintf(odesc, "cli_gentempfd() failed. ERROR\n"); logg("!ScanStream %u: Can't create temporary file.\n", port); return -1;*** /home/njh/src/clamav-devel/trunk/./clamd/clamd.c 2008-02-18 16:35:00.000000000 +0000--- ./clamd/clamd.c 2008-02-18 16:37:26.000000000 +0000****************** 35,41 **** #include <sys/stat.h> #include <fcntl.h> #include <time.h>! #ifndef C_WINDOWS #include <pwd.h> #include <grp.h> #endif--- 35,43 ---- #include <sys/stat.h> #include <fcntl.h> #include <time.h>! #ifdef C_WINDOWS! #include <direct.h> /* for chdir */! #else #include <pwd.h> #include <grp.h> #endif****************** 65,70 ****--- 67,75 ---- #include "others.h" #include "shared.h" + #ifndef C_WINDOWS+ #define closesocket(s) close(s)+ #endif short debug_mode = 0, logok = 0; short foreground = 0;****************** 86,92 ****--- 91,99 ---- { struct cfgstruct *copt; const struct cfgstruct *cpt;+ #ifndef C_WINDOWS struct passwd *user = NULL;+ #endif time_t currtime; struct cl_engine *engine = NULL; const char *dbdir, *cfgfile;****************** 281,288 ****--- 288,297 ---- logg("#clamd daemon "VERSION" (OS: "TARGET_OS_TYPE", ARCH: "TARGET_ARCH_TYPE", CPU: "TARGET_CPU_TYPE")\n"); + #ifndef C_WINDOWS if(user) logg("#Running as user %s (UID %u, GID %u)\n", user->pw_name, user->pw_uid, user->pw_gid);+ #endif if(logg_size) logg("#Log file size limited to %d bytes.\n", logg_size);****************** 366,372 **** logg_close(); freecfg(copt); if(tcpsock)! close(lsockets[0]); return 1; } nlsockets++;--- 375,381 ---- logg_close(); freecfg(copt); if(tcpsock)! closesocket(lsockets[0]); return 1; } nlsockets++;*** /home/njh/src/clamav-devel/trunk/./clamd/server-th.c 2008-02-25 15:44:06.000000000 +0000--- ./clamd/server-th.c 2008-02-25 15:45:37.000000000 +0000****************** 573,579 **** client_conn->socketds = socketds; client_conn->nsockets = nsockets; if (!thrmgr_dispatch(thr_pool, client_conn)) {! close(client_conn->sd); free(client_conn); logg("!thread dispatch failed\n"); }--- 573,579 ---- client_conn->socketds = socketds; client_conn->nsockets = nsockets; if (!thrmgr_dispatch(thr_pool, client_conn)) {! closesocket(client_conn->sd); free(client_conn); logg("!thread dispatch failed\n"); }****************** 581,589 **** pthread_mutex_lock(&exit_mutex); if(progexit) {! if (new_sd >= 0) {! close(new_sd);! } pthread_mutex_unlock(&exit_mutex); break; }--- 581,592 ---- pthread_mutex_lock(&exit_mutex); if(progexit) {! #ifdef C_WINDOWS! closesocket(new_sd);! #else! if (new_sd >= 0)! closesocket(new_sd);! #endif pthread_mutex_unlock(&exit_mutex); break; }****************** 607,614 **** engine = reload_db(engine, dboptions, copt, FALSE, &ret); if(ret) { logg("Terminating because of a fatal error.\n");! if(new_sd >= 0)! close(new_sd); break; } pthread_mutex_lock(&reload_mutex);--- 610,621 ---- engine = reload_db(engine, dboptions, copt, FALSE, &ret); if(ret) { logg("Terminating because of a fatal error.\n");! #ifdef C_WINDOWS! closesocket(new_sd);! #else! if (new_sd >= 0)! closesocket(new_sd);! #endif break; } pthread_mutex_lock(&reload_mutex);*** /home/njh/src/clamav-devel/trunk/./clamd/tcpserver.c 2008-02-18 16:35:00.000000000 +0000--- ./clamd/tcpserver.c 2008-02-18 16:37:46.000000000 +0000****************** 51,56 ****--- 51,60 ---- #include "server.h" #include "tcpserver.h" + #ifndef C_WINDOWS+ #define closesocket(s) close(s)+ #endif+ int tcpserver(const struct cfgstruct *copt) { struct sockaddr_in server;****************** 87,93 **** if(bind(sockfd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) == -1) { estr = strerror(errno); logg("!TCP: bind() error: %s\n", estr);! close(sockfd); return -1; } else { if(taddr->enabled)--- 91,97 ---- if(bind(sockfd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) == -1) { estr = strerror(errno); logg("!TCP: bind() error: %s\n", estr);! closesocket(sockfd); return -1; } else { if(taddr->enabled)****************** 102,108 **** if(listen(sockfd, backlog) == -1) { estr = strerror(errno); logg("!TCP: listen() error: %s\n", estr);! close(sockfd); return -1; } --- 106,112 ---- if(listen(sockfd, backlog) == -1) { estr = strerror(errno); logg("!TCP: listen() error: %s\n", estr);! closesocket(sockfd); return -1; } *** /home/njh/src/clamav-devel/trunk/./clamdscan/client.c 2008-01-23 16:19:16.000000000 +0000--- ./clamdscan/client.c 2008-02-25 15:57:20.000000000 +0000****************** 15,36 ****--- 15,44 ---- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */+ #ifdef _MSC_VER+ #include <winsock.h>+ #endif+ #if HAVE_CONFIG_H #include "clamav-config.h" #endif #include <stdio.h>+ #ifdef HAVE_UNISTD_H #include <unistd.h>+ #endif #include <string.h> #include <sys/types.h> #include <sys/stat.h>+ #ifndef C_WINDOWS #include <sys/socket.h> #include <sys/un.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <utime.h>+ #endif #include <errno.h> #ifdef HAVE_SYS_UIO_H****************** 52,60 ****--- 60,137 ---- # define SOCKET_INET AF_INET #endif + #ifndef C_WINDOWS+ #define closesocket(s) close(s)+ #endif+ + /* #define ENABLE_FD_PASSING FIXME: Doesn't work yet */+ void move_infected(const char *filename, const struct optstruct *opt); int notremoved = 0, notmoved = 0; + #ifdef C_WINDOWS+ static int get_a_line(int sockd, char *buf, size_t len);+ + static int+ dsresult(int sockd, const struct optstruct *opt)+ {+ char buff[BUFSIZ], *pt;+ int infected = 0, waserror = 0;+ + while(get_a_line(sockd, buff, sizeof(buff))) {+ if(strstr(buff, "FOUND\n")) {+ infected++;+ logg("%s", buff);+ if(opt_check(opt, "move") || opt_check(opt, "copy")) {+ /* filename: Virus FOUND */+ if((pt = strrchr(buff, ':'))) {+ *pt = 0;+ move_infected(buff, opt);+ } else+ mprintf("@Broken data format. File not %s.\n", opt_check(opt, "move") ? "moved" : "copied");+ } else if(opt_check(opt, "remove")) {+ if(!(pt = strrchr(buff, ':')))+ mprintf("@Broken data format. File not removed.\n");+ else {+ *pt = 0;+ if(unlink(buff)) {+ mprintf("~%s: Can't remove.\n", buff);+ logg("~%s: Can't remove.\n", buff);+ notremoved++;+ } else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -