Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP6:Update
viruskiller
reproducible.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File reproducible.patch of Package viruskiller
# PATCH-FIX-OPENSUSE (boo#1041090) When building packages for openSUSE, we do so in disposable VMs, which means every build has a new filesystem and thus ordering of files differs for the readdir call in src/pak.cpp Index: viruskiller-1.03/src/pak.cpp =================================================================== --- viruskiller-1.03.orig/src/pak.cpp +++ viruskiller-1.03/src/pak.cpp @@ -81,7 +81,9 @@ void countFiles(const char *dirName) void recurseDirectory(const char *dirName) { - DIR *dirp, *dirp2; + DIR *dirp2; + int n; + struct dirent **namelist; dirent *dfile; gzFile fp; FILE *infile; @@ -90,9 +92,9 @@ void recurseDirectory(const char *dirNam uLongf cSize = 0; uLongf fSize = 0; - dirp = opendir(dirName); + n = scandir(dirName, &namelist, NULL, alphasort); - if (dirp == NULL) + if (n == -1) { printf("%s: Directory does not exist or is not accessable\n", dirName); return; @@ -101,10 +103,12 @@ void recurseDirectory(const char *dirNam float percentage; long filesize; - while ((dfile = readdir(dirp))) + while (n--) { + dfile = namelist[n]; if (dfile->d_name[0] == '.') { + free(dfile); continue; } @@ -123,7 +127,6 @@ void recurseDirectory(const char *dirNam if (!infile) { printf("Couldn't open %s for reading!\n", filename); - closedir(dirp); gzclose(pak); exit(1); } @@ -155,7 +158,6 @@ void recurseDirectory(const char *dirNam if (!fp) { printf("Couldn't open %s for reading!\n", filename); - closedir(dirp); gzclose(pak); exit(1); } @@ -181,9 +183,10 @@ void recurseDirectory(const char *dirNam fflush(stdout); } } + free(dfile); } - closedir(dirp); + free(namelist); dirs++; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor