mirror of
https://github.com/MiyooCFW/buildroot.git
synced 2025-09-27 22:24:19 +03:00
Merge from bittboy/buildroot@db180c0
This commit is contained in:
56
package/cgic/0002-file_enhancements.patch
Normal file
56
package/cgic/0002-file_enhancements.patch
Normal file
@@ -0,0 +1,56 @@
|
||||
Create better temporary files.
|
||||
|
||||
Probably-Signed-off-by: Dave Bender <bender@benegon.com>
|
||||
[yann.morin.1998@free.fr: patch was made by Dave, but he
|
||||
forgot his SoB line, so I added it; split the patch in two
|
||||
independent fixes]
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
diff -rupN cgic206/cgic.c cgic206_tempfile/cgic.c
|
||||
--- cgic206/cgic.c 2014-03-16 18:17:11.000000000 -0400
|
||||
+++ cgic206_tempfile/cgic.c 2015-01-21 11:58:45.436384908 -0500
|
||||
@@ -22,6 +22,8 @@
|
||||
#define CGICDEBUGEND
|
||||
#endif /* CGICDEBUG */
|
||||
|
||||
+#define _GNU_SOURCE
|
||||
+
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
@@ -34,11 +36,11 @@
|
||||
#include <io.h>
|
||||
|
||||
/* cgic 2.01 */
|
||||
-#include <fcntl.h>
|
||||
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif /* WIN32 */
|
||||
+#include <fcntl.h>
|
||||
#include "cgic.h"
|
||||
|
||||
#define cgiStrEq(a, b) (!strcmp((a), (b)))
|
||||
@@ -636,16 +638,17 @@ static cgiParseResultType getTempFileNam
|
||||
window between the file's creation and the
|
||||
chmod call (glibc 2.0.6 and lower might
|
||||
otherwise have allowed this). */
|
||||
+ mode_t umode;
|
||||
int outfd;
|
||||
+ umode = umask(0600);
|
||||
strcpy(tfileName, cgicTempDir "/cgicXXXXXX");
|
||||
- outfd = mkstemp(tfileName);
|
||||
+ outfd = mkostemp(tfileName, O_CLOEXEC | O_NOATIME);
|
||||
+ umask(umode);
|
||||
if (outfd == -1) {
|
||||
return cgiParseIO;
|
||||
}
|
||||
- close(outfd);
|
||||
- /* Fix the permissions */
|
||||
- if (chmod(tfileName, 0600) != 0) {
|
||||
- unlink(tfileName);
|
||||
+
|
||||
+ if (close(outfd)) {
|
||||
return cgiParseIO;
|
||||
}
|
||||
#else
|
||||
Reference in New Issue
Block a user