git-svn: trunk@3667
Tomasz Kojm authored on 2008/02/22 04:00:54... | ... |
@@ -1,3 +1,7 @@ |
1 |
+Thu Feb 21 19:00:45 CET 2008 (tk) |
|
2 |
+--------------------------------- |
|
3 |
+ * freshclam/manager.c: keep proper file order when building .cld file |
|
4 |
+ |
|
1 | 5 |
Thu Feb 21 15:29:48 CET 2008 (tk) |
2 | 6 |
--------------------------------- |
3 | 7 |
* clamd/server-th.c: fix compilation error on Tru64 (bb#829) |
... | ... |
@@ -826,7 +826,7 @@ static int buildcld(const char *tmpdir, const char *dbname, const char *newfile, |
826 | 826 |
DIR *dir; |
827 | 827 |
char cwd[512], info[32], buff[512], *pt; |
828 | 828 |
struct dirent *dent; |
829 |
- int fd; |
|
829 |
+ int fd, err = 0; |
|
830 | 830 |
gzFile *gzs = NULL; |
831 | 831 |
|
832 | 832 |
|
... | ... |
@@ -890,12 +890,39 @@ static int buildcld(const char *tmpdir, const char *dbname, const char *newfile, |
890 | 890 |
} |
891 | 891 |
} |
892 | 892 |
|
893 |
+ if(access("COPYING", R_OK)) { |
|
894 |
+ logg("!buildcld: COPYING file not found\n"); |
|
895 |
+ err = 1; |
|
896 |
+ } else { |
|
897 |
+ if(tar_addfile(fd, gzs, "COPYING") == -1) { |
|
898 |
+ logg("!buildcld: Can't add COPYING to .cld file\n"); |
|
899 |
+ err = 1; |
|
900 |
+ } |
|
901 |
+ } |
|
902 |
+ |
|
903 |
+ if(!err && !access("daily.cfg", R_OK)) { |
|
904 |
+ if(tar_addfile(fd, gzs, "daily.cfg") == -1) { |
|
905 |
+ logg("!buildcld: Can't add daily.cfg to .cld file\n"); |
|
906 |
+ err = 1; |
|
907 |
+ } |
|
908 |
+ } |
|
909 |
+ |
|
910 |
+ if(err) { |
|
911 |
+ chdir(cwd); |
|
912 |
+ if(gzs) |
|
913 |
+ gzclose(gzs); |
|
914 |
+ else |
|
915 |
+ close(fd); |
|
916 |
+ unlink(newfile); |
|
917 |
+ return -1; |
|
918 |
+ } |
|
919 |
+ |
|
893 | 920 |
while((dent = readdir(dir))) { |
894 | 921 |
#ifndef C_INTERIX |
895 | 922 |
if(dent->d_ino) |
896 | 923 |
#endif |
897 | 924 |
{ |
898 |
- if(!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, "..")) |
|
925 |
+ if(!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, "..") || !strcmp(dent->d_name, "COPYING") || !strcmp(dent->d_name, "daily.cfg")) |
|
899 | 926 |
continue; |
900 | 927 |
|
901 | 928 |
if(tar_addfile(fd, gzs, dent->d_name) == -1) { |