Commit 7f4246806 for imagemagick.org
commit 7f4246806f342159131465d2d5cf54e7c20c2127
Author: Cristy <urban-warrior@imagemagick.org>
Date: Wed Mar 11 22:04:13 2026 -0400
https://github.com/ImageMagick/ImageMagick/issues/8609
diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 63c192810..c5eacf215 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -385,7 +385,7 @@ MagickExport MagickBooleanType BlobToFile(char *filename,const void *blob,
if (*filename == '\0')
file=AcquireUniqueFileResource(filename);
else
- file=open_utf8(filename,O_RDWR | O_CREAT | O_EXCL | O_BINARY,S_MODE);
+ file=open_utf8(filename,O_RDWR | O_CREAT | O_EXCL | O_BINARY,P_MODE);
if (file == -1)
{
ThrowFileException(exception,BlobError,"UnableToWriteBlob",filename);
@@ -2411,7 +2411,7 @@ MagickExport MagickBooleanType ImageToFile(Image *image,char *filename,
if (LocaleCompare(filename,"-") == 0)
file=fileno(stdout);
else
- file=open_utf8(filename,O_RDWR | O_CREAT | O_EXCL | O_BINARY,S_MODE);
+ file=open_utf8(filename,O_RDWR | O_CREAT | O_EXCL | O_BINARY,P_MODE);
if (file == -1)
{
ThrowFileException(exception,BlobError,"UnableToWriteBlob",filename);
@@ -3685,7 +3685,7 @@ MagickExport MagickBooleanType OpenBlob(const ImageInfo *image_info,
file;
blob_info->file_info.file=(FILE *) NULL;
- file=open_utf8(filename,flags,S_MODE);
+ file=open_utf8(filename,flags,P_MODE);
if (file >= 0)
blob_info->file_info.file=fdopen(file,type);
if (blob_info->file_info.file != (FILE *) NULL)
diff --git a/MagickCore/studio.h b/MagickCore/studio.h
index 8df8cd820..b3cdef759 100644
--- a/MagickCore/studio.h
+++ b/MagickCore/studio.h
@@ -234,10 +234,13 @@ extern int vsnprintf(char *,size_t,const char *,va_list);
#endif
#if defined(S_IRUSR) && defined(S_IWUSR)
+# define P_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
# define S_MODE (S_IRUSR | S_IWUSR)
#elif defined (MAGICKCORE_WINDOWS_SUPPORT)
+# define P_MODE (_S_IREAD | _S_IWRITE | _S_IRGRP | _S_IWGRP | _S_IROTH | _S_IWOTH)
# define S_MODE (_S_IREAD | _S_IWRITE)
#else
+# define P_MODE 0666
# define S_MODE 0600
#endif
diff --git a/MagickWand/studio.h b/MagickWand/studio.h
index 5ff5b8ac6..f121bbb87 100644
--- a/MagickWand/studio.h
+++ b/MagickWand/studio.h
@@ -211,10 +211,13 @@ extern int vsnprintf(char *,size_t,const char *,va_list);
#endif
#if defined(S_IRUSR) && defined(S_IWUSR)
+# define P_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
# define S_MODE (S_IRUSR | S_IWUSR)
-#elif defined (MAGICKWAND_WINDOWS_SUPPORT)
+#elif defined (MAGICKCORE_WINDOWS_SUPPORT)
+# define P_MODE (_S_IREAD | _S_IWRITE | _S_IRGRP | _S_IWGRP | _S_IROTH | _S_IWOTH)
# define S_MODE (_S_IREAD | _S_IWRITE)
#else
+# define P_MODE 0666
# define S_MODE 0600
#endif