Merge branch 'getfsent_lock' into 'main'

Add lock in _g_get_unix_mount_points() around *fsent() functions

See merge request GNOME/glib!1717
This commit is contained in:
Philip Withnall 2022-06-27 11:20:49 +00:00
commit 6d381c9668

View File

@ -1410,18 +1410,14 @@ _g_get_unix_mount_points (void)
{
struct fstab *fstab = NULL;
GUnixMountPoint *mount_point;
GList *return_list;
GList *return_list = NULL;
G_LOCK_DEFINE_STATIC (fsent);
#ifdef HAVE_SYS_SYSCTL_H
uid_t uid = getuid ();
int usermnt = 0;
struct stat sb;
#endif
if (!setfsent ())
return NULL;
return_list = NULL;
#ifdef HAVE_SYS_SYSCTL_H
#if defined(HAVE_SYSCTLBYNAME)
{
@ -1449,7 +1445,14 @@ _g_get_unix_mount_points (void)
}
#endif
#endif
G_LOCK (fsent);
if (!setfsent ())
{
G_UNLOCK (fsent);
return NULL;
}
while ((fstab = getfsent ()) != NULL)
{
gboolean is_read_only = FALSE;
@ -1482,9 +1485,10 @@ _g_get_unix_mount_points (void)
return_list = g_list_prepend (return_list, mount_point);
}
endfsent ();
G_UNLOCK (fsent);
return g_list_reverse (return_list);
}
/* Interix {{{2 */