freebsd-ports/archivers/torrentzip/files/patch-src-trrntzip.c
Pav Lucistnik b5706294b0 - Fix bug: Torrentzip uses the read permission flag to check if a zip file
needs to be processed.  It does this by first setting all zip files to 0400,
  then as it processes the zip file it changes the permissions to 0200.

PR:		ports/81502
Submitted by:	Scot W. Hetzel <swhetzel@gmail.com> (maintainer)
Obtained from:	author
2005-05-26 20:40:29 +00:00

32 lines
1.1 KiB
C

--- src/trrntzip.c-orig Mon May 2 08:38:40 2005
+++ src/trrntzip.c Sat May 7 02:51:55 2005
@@ -716,7 +716,7 @@
if (dirp)
{
- // First set all the files to read-only. This is so we can skip
+ // First set the sticky bit on all files. This is so we can skip
// our new zipfiles if they are returned by readdir() a second time.
while (direntp = readdir (dirp))
{
@@ -732,7 +732,7 @@
if (strstr (szTmpBuf, ".zip\0"))
{
- chmod (direntp->d_name, S_IRUSR);
+ chmod (direntp->d_name, istat.st_mode | S_ISTXT);
}
}
// Zip file is actually a dir
@@ -780,9 +780,9 @@
sprintf (szTmpBuf, "%s", direntp->d_name);
strlwr (szTmpBuf);
- if (strstr (szTmpBuf, ".zip\0") && !(istat.st_mode & S_IWUSR))
+ if (strstr (szTmpBuf, ".zip\0") && (istat.st_mode & S_ISTXT))
{
- chmod (direntp->d_name, S_IWUSR);
+ chmod (direntp->d_name, istat.st_mode & ~S_ISTXT);
mig.cEncounteredZips++;
if (!mig.fProcessLog)