git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@1254 77e5149b-7576-45b1-b177-96237e5ba77b
| ... | ... |
@@ -1,3 +1,7 @@ |
| 1 |
+Wed Jan 19 00:48:48 CET 2005 (tk) |
|
| 2 |
+--------------------------------- |
|
| 3 |
+ * improve OS/2 support (patch by Yuri Dario <mc6530*mclink.it>) |
|
| 4 |
+ |
|
| 1 | 5 |
Wed Jan 19 00:17:25 CET 2005 (tk) |
| 2 | 6 |
--------------------------------- |
| 3 | 7 |
* zziplib/zzip-zip.c: fix possible small memory leak (thanks to Trog) |
| ... | ... |
@@ -28,7 +32,7 @@ Wed Jan 12 08:58:29 GMT 2005 (njh) |
| 28 | 28 |
---------------------------------- |
| 29 | 29 |
* clamav-milter: Fixed DNS resolution error messages which could print |
| 30 | 30 |
the incorrect hostname that is not being resolved. Patch from |
| 31 |
- Yar Tikhiy <yar@comp.chem.msu.su> |
|
| 31 |
+ Yar Tikhiy <yar*comp.chem.msu.su> |
|
| 32 | 32 |
|
| 33 | 33 |
Tue Jan 11 20:24:36 CET 2005 (tk) |
| 34 | 34 |
--------------------------------- |
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 | 3 |
* |
| 4 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 5 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -197,7 +197,8 @@ void clamd(struct optstruct *opt) |
| 197 | 197 |
exit(1); |
| 198 | 198 |
} |
| 199 | 199 |
|
| 200 |
- /* drop priviledges */ |
|
| 200 |
+ /* drop privileges */ |
|
| 201 |
+#ifndef C_OS2 |
|
| 201 | 202 |
if(geteuid() == 0 && (cpt = cfgopt(copt, "User"))) {
|
| 202 | 203 |
if((user = getpwnam(cpt->strarg)) == NULL) {
|
| 203 | 204 |
fprintf(stderr, "ERROR: Can't get information about user %s.\n", cpt->strarg); |
| ... | ... |
@@ -239,6 +240,7 @@ void clamd(struct optstruct *opt) |
| 239 | 239 |
|
| 240 | 240 |
logg("Running as user %s (UID %d, GID %d)\n", cpt->strarg, user->pw_uid, user->pw_gid);
|
| 241 | 241 |
} |
| 242 |
+#endif |
|
| 242 | 243 |
|
| 243 | 244 |
/* set the temporary dir */ |
| 244 | 245 |
if((cpt = cfgopt(copt, "TemporaryDirectory"))) |
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 | 3 |
* |
| 4 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 5 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -228,7 +228,7 @@ int writen(int fd, void *buff, unsigned int count) |
| 228 | 228 |
|
| 229 | 229 |
/* Submitted by Richard Lyons <frob-clamav*webcentral.com.au> */ |
| 230 | 230 |
|
| 231 |
-#if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) && !defined(C_CYGWIN) |
|
| 231 |
+#if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) && !defined(C_CYGWIN) && !defined(C_OS2) |
|
| 232 | 232 |
|
| 233 | 233 |
int readsock(int sockfd, char *buf, size_t size) |
| 234 | 234 |
{
|
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 | 3 |
* |
| 4 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 5 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -31,7 +31,7 @@ int is_fd_connected(int fd); |
| 31 | 31 |
void virusaction(const char *virname, const struct cfgstruct *copt); |
| 32 | 32 |
int writen(int fd, void *buff, unsigned int count); |
| 33 | 33 |
|
| 34 |
-#if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) && !defined(C_CYGWIN) |
|
| 34 |
+#if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) && !defined(C_CYGWIN) && !defined(C_OS2) |
|
| 35 | 35 |
int readsock(int sockfd, char *buf, size_t size); |
| 36 | 36 |
#else |
| 37 | 37 |
#define readsock read |
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 | 3 |
* |
| 4 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 5 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 | 3 |
* |
| 4 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 5 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -66,7 +66,11 @@ int dsresult(int sockd, const struct optstruct *opt) |
| 66 | 66 |
FILE *fd; |
| 67 | 67 |
|
| 68 | 68 |
|
| 69 |
+#ifndef C_OS2 |
|
| 69 | 70 |
if((fd = fdopen(dup(sockd), "r")) == NULL) {
|
| 71 |
+#else /* FIXME: accoriding to YD OS/2 does not support dup() for sockets */ |
|
| 72 |
+ if((fd = fdopen(sockd, "r")) == NULL) {
|
|
| 73 |
+#endif |
|
| 70 | 74 |
mprintf("@Can't open descriptor for reading.\n");
|
| 71 | 75 |
return -1; |
| 72 | 76 |
} |
| ... | ... |
@@ -102,7 +106,9 @@ int dsresult(int sockd, const struct optstruct *opt) |
| 102 | 102 |
} |
| 103 | 103 |
} |
| 104 | 104 |
|
| 105 |
+#ifndef C_OS2 /* Small memory leak under OS/2 (see above) */ |
|
| 105 | 106 |
fclose(fd); |
| 107 |
+#endif |
|
| 106 | 108 |
|
| 107 | 109 |
return infected ? infected : (waserror ? -1 : 0); |
| 108 | 110 |
} |
| ... | ... |
@@ -73,7 +73,7 @@ int scanmanager(const struct optstruct *opt) |
| 73 | 73 |
|
| 74 | 74 |
|
| 75 | 75 |
/* njh@bandsman.co.uk: BeOS */ |
| 76 |
-#if !defined(C_CYGWIN) && !defined(C_BEOS) |
|
| 76 |
+#if !defined(C_CYGWIN) && !defined(C_OS2) && !defined(C_BEOS) |
|
| 77 | 77 |
if(!geteuid()) {
|
| 78 | 78 |
if((user = getpwnam(UNPUSER)) == NULL) {
|
| 79 | 79 |
mprintf("@Can't get information about user "UNPUSER".\n");
|
| ... | ... |
@@ -1,6 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 |
- * Damien Curtain <damien@pagefault.org> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 4 | 3 |
* |
| 5 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 6 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -98,7 +97,7 @@ int freshclam(struct optstruct *opt) |
| 98 | 98 |
struct cfgstruct *copt, *cpt; |
| 99 | 99 |
struct sigaction sigact; |
| 100 | 100 |
struct sigaction oldact; |
| 101 |
-#ifndef C_CYGWIN |
|
| 101 |
+#if !defined(C_CYGWIN) && !defined(C_OS2) |
|
| 102 | 102 |
char *unpuser; |
| 103 | 103 |
struct passwd *user; |
| 104 | 104 |
#endif |
| ... | ... |
@@ -139,7 +138,7 @@ int freshclam(struct optstruct *opt) |
| 139 | 139 |
#endif |
| 140 | 140 |
} |
| 141 | 141 |
|
| 142 |
-#ifndef C_CYGWIN |
|
| 142 |
+#if !defined(C_CYGWIN) && !defined(C_OS2) |
|
| 143 | 143 |
/* freshclam shouldn't work with root privileges */ |
| 144 | 144 |
if(optc(opt, 'u')) {
|
| 145 | 145 |
unpuser = getargc(opt, 'u'); |
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
/* |
| 2 |
- * Copyright (C) 2002 - 2004 Tomasz Kojm <tkojm@clamav.net> |
|
| 2 |
+ * Copyright (C) 2002 - 2005 Tomasz Kojm <tkojm@clamav.net> |
|
| 3 | 3 |
* |
| 4 | 4 |
* This program is free software; you can redistribute it and/or modify |
| 5 | 5 |
* it under the terms of the GNU General Public License as published by |
| ... | ... |
@@ -861,13 +861,13 @@ int cl_statinidir(const char *dirname, struct cl_stat *dbstat) |
| 861 | 861 |
|
| 862 | 862 |
dbstat->no++; |
| 863 | 863 |
dbstat->stattab = (struct stat *) realloc(dbstat->stattab, dbstat->no * sizeof(struct stat)); |
| 864 |
-#if defined(CL_INTERIX) || defined(CL_OS2) |
|
| 864 |
+#if defined(C_INTERIX) || defined(C_OS2) |
|
| 865 | 865 |
dbstat->statdname = (char **) realloc(dbstat->statdname, dbstat->no * sizeof(char *)); |
| 866 | 866 |
#endif |
| 867 | 867 |
|
| 868 | 868 |
fname = cli_calloc(strlen(dirname) + strlen(dent->d_name) + 2, sizeof(char)); |
| 869 | 869 |
sprintf(fname, "%s/%s", dirname, dent->d_name); |
| 870 |
-#if defined(CL_INTERIX) || defined(CL_OS2) |
|
| 870 |
+#if defined(C_INTERIX) || defined(C_OS2) |
|
| 871 | 871 |
dbstat->statdname[dbstat->no - 1] = (char *) calloc(strlen(dent->d_name) + 1, sizeof(char)); |
| 872 | 872 |
strcpy(dbstat->statdname[dbstat->no - 1], dent->d_name); |
| 873 | 873 |
#endif |
| ... | ... |
@@ -934,7 +934,7 @@ int cl_statchkdir(const struct cl_stat *dbstat) |
| 934 | 934 |
|
| 935 | 935 |
found = 0; |
| 936 | 936 |
for(i = 0; i < dbstat->no; i++) |
| 937 |
-#if defined(CL_INTERIX) || defined(CL_OS2) |
|
| 937 |
+#if defined(C_INTERIX) || defined(C_OS2) |
|
| 938 | 938 |
if(!strcmp(dbstat->statdname[i], dent->d_name)) {
|
| 939 | 939 |
#else |
| 940 | 940 |
if(dbstat->stattab[i].st_ino == sb.st_ino) {
|
| ... | ... |
@@ -963,7 +963,7 @@ int cl_statfree(struct cl_stat *dbstat) |
| 963 | 963 |
|
| 964 | 964 |
if(dbstat) {
|
| 965 | 965 |
|
| 966 |
-#if defined(CL_INTERIX) || defined(CL_OS2) |
|
| 966 |
+#if defined(C_INTERIX) || defined(C_OS2) |
|
| 967 | 967 |
int i; |
| 968 | 968 |
|
| 969 | 969 |
for(i = 0;i < dbstat->no; i++) {
|