mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 23:16:14 +01:00
Bug 594034 - Use g_mkstemp_full() when creating the replacement file
Previous code used g_mkstemp(). But when using G_FILE_CREATE_REPLACE_DESTINATION, no attempt was made to ensure proper mode and flags of the created temporary file. The visible issue was that the file was always created with mode 0600 as opposed to using 0666. (The invisible issue was that O_RDWR was used instead of O_WRONLY.)
This commit is contained in:
parent
24bec5c5bd
commit
4114f1214c
@ -900,6 +900,73 @@ Turns the argument into a string literal by using the '#' stringizing operator.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### VARIABLE glib_binary_age ##### -->
|
||||||
|
<para>
|
||||||
|
This is the binary age passed to <application>libtool</application>. If
|
||||||
|
<application>libtool</application> means nothing to you, don't worry
|
||||||
|
about it. ;-)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### FUNCTION glib_check_version ##### -->
|
||||||
|
<para>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
@required_major:
|
||||||
|
@required_minor:
|
||||||
|
@required_micro:
|
||||||
|
@Returns:
|
||||||
|
|
||||||
|
<!-- ##### VARIABLE glib_interface_age ##### -->
|
||||||
|
<para>
|
||||||
|
This is the interface age passed to <application>libtool</application>. If
|
||||||
|
<application>libtool</application> means nothing to you, don't worry
|
||||||
|
about it. ;-)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### VARIABLE glib_major_version ##### -->
|
||||||
|
<para>
|
||||||
|
The major version number of the GLib library.
|
||||||
|
(e.g. in GLib version 1.2.5 this is 1.)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This variable is in the library, so represents the
|
||||||
|
GLib library you have linked against. Contrast with the
|
||||||
|
#GLIB_MAJOR_VERSION macro, which represents the major version of the
|
||||||
|
GLib headers you have included.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### VARIABLE glib_micro_version ##### -->
|
||||||
|
<para>
|
||||||
|
The micro version number of the GLib library.
|
||||||
|
(e.g. in GLib version 1.2.5 this is 5.)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This variable is in the library, so represents the GLib library you
|
||||||
|
have linked against. Contrast with the #GLIB_MICRO_VERSION macro, which
|
||||||
|
represents the micro version of the GLib headers you have included.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### VARIABLE glib_minor_version ##### -->
|
||||||
|
<para>
|
||||||
|
The minor version number of the GLib library.
|
||||||
|
(e.g. in GLib version 1.2.5 this is 2.)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This variable is in the library, so represents the
|
||||||
|
GLib library you have linked against. Contrast with the
|
||||||
|
#GLIB_MINOR_VERSION macro, which represents the minor version of the
|
||||||
|
GLib headers you have included.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO lseek ##### -->
|
<!-- ##### MACRO lseek ##### -->
|
||||||
<para>
|
<para>
|
||||||
|
|
||||||
|
@ -403,7 +403,7 @@ Since: 2.14
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION G_LIKELY ##### -->
|
<!-- ##### MACRO G_LIKELY ##### -->
|
||||||
<para>
|
<para>
|
||||||
Hints the compiler that the expression is likely to evaluate to a true
|
Hints the compiler that the expression is likely to evaluate to a true
|
||||||
value. The compiler may use this information for optimizations.
|
value. The compiler may use this information for optimizations.
|
||||||
@ -413,10 +413,9 @@ if (G_LIKELY (random () != 1))
|
|||||||
g_print ("not one");
|
g_print ("not one");
|
||||||
</programlisting></informalexample>
|
</programlisting></informalexample>
|
||||||
|
|
||||||
|
@expr: the expression
|
||||||
@Returns: the value of @expr
|
@Returns: the value of @expr
|
||||||
@Since: 2.2
|
@Since: 2.2
|
||||||
<!-- # Unused Parameters # -->
|
|
||||||
@expr: the expression
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO G_UNLIKELY ##### -->
|
<!-- ##### MACRO G_UNLIKELY ##### -->
|
||||||
|
@ -165,6 +165,13 @@ These are portable utility functions.
|
|||||||
@Returns:
|
@Returns:
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### FUNCTION g_reload_user_special_dirs_cache ##### -->
|
||||||
|
<para>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION g_get_host_name ##### -->
|
<!-- ##### FUNCTION g_get_host_name ##### -->
|
||||||
<para>
|
<para>
|
||||||
|
|
||||||
|
@ -19,74 +19,6 @@ typically use the features described here.
|
|||||||
<!-- ##### SECTION Stability_Level ##### -->
|
<!-- ##### SECTION Stability_Level ##### -->
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### VARIABLE glib_major_version ##### -->
|
|
||||||
<para>
|
|
||||||
The major version number of the GLib library.
|
|
||||||
(e.g. in GLib version 1.2.5 this is 1.)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This variable is in the library, so represents the
|
|
||||||
GLib library you have linked against. Contrast with the
|
|
||||||
#GLIB_MAJOR_VERSION macro, which represents the major version of the
|
|
||||||
GLib headers you have included.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### VARIABLE glib_minor_version ##### -->
|
|
||||||
<para>
|
|
||||||
The minor version number of the GLib library.
|
|
||||||
(e.g. in GLib version 1.2.5 this is 2.)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This variable is in the library, so represents the
|
|
||||||
GLib library you have linked against. Contrast with the
|
|
||||||
#GLIB_MINOR_VERSION macro, which represents the minor version of the
|
|
||||||
GLib headers you have included.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### VARIABLE glib_micro_version ##### -->
|
|
||||||
<para>
|
|
||||||
The micro version number of the GLib library.
|
|
||||||
(e.g. in GLib version 1.2.5 this is 5.)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This variable is in the library, so represents the GLib library you
|
|
||||||
have linked against. Contrast with the #GLIB_MICRO_VERSION macro, which
|
|
||||||
represents the micro version of the GLib headers you have included.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### VARIABLE glib_binary_age ##### -->
|
|
||||||
<para>
|
|
||||||
This is the binary age passed to <application>libtool</application>. If
|
|
||||||
<application>libtool</application> means nothing to you, don't worry
|
|
||||||
about it. ;-)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### VARIABLE glib_interface_age ##### -->
|
|
||||||
<para>
|
|
||||||
This is the interface age passed to <application>libtool</application>. If
|
|
||||||
<application>libtool</application> means nothing to you, don't worry
|
|
||||||
about it. ;-)
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION glib_check_version ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@required_major:
|
|
||||||
@required_minor:
|
|
||||||
@required_micro:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO GLIB_MAJOR_VERSION ##### -->
|
<!-- ##### MACRO GLIB_MAJOR_VERSION ##### -->
|
||||||
<para>
|
<para>
|
||||||
The major version number of the GLib library.
|
The major version number of the GLib library.
|
||||||
|
@ -867,7 +867,7 @@ handle_overwrite_open (const char *filename,
|
|||||||
tmp_filename = g_build_filename (dirname, ".goutputstream-XXXXXX", NULL);
|
tmp_filename = g_build_filename (dirname, ".goutputstream-XXXXXX", NULL);
|
||||||
g_free (dirname);
|
g_free (dirname);
|
||||||
|
|
||||||
tmpfd = g_mkstemp (tmp_filename);
|
tmpfd = g_mkstemp_full (tmp_filename, (readable ? O_RDWR : O_WRONLY) | O_BINARY, mode);
|
||||||
if (tmpfd == -1)
|
if (tmpfd == -1)
|
||||||
{
|
{
|
||||||
g_free (tmp_filename);
|
g_free (tmp_filename);
|
||||||
|
Loading…
Reference in New Issue
Block a user