mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-15 04:05:11 +01:00
Avoid displaying mounts in a subdirectory not accessible to the user
2008-04-28 David Zeuthen <davidz@redhat.com> * gunixmounts.c (g_unix_mount_guess_should_display): Avoid displaying mounts in a subdirectory not accessible to the user (#526320). svn path=/trunk/; revision=6872
This commit is contained in:
parent
11f85653a8
commit
27dba4c28b
@ -1,3 +1,9 @@
|
|||||||
|
2008-04-28 David Zeuthen <davidz@redhat.com>
|
||||||
|
|
||||||
|
* gunixmounts.c (g_unix_mount_guess_should_display): Avoid
|
||||||
|
displaying mounts in a subdirectory not accessible to the
|
||||||
|
user (#526320).
|
||||||
|
|
||||||
2008-04-22 Michael Natterer <mitch@imendio.com>
|
2008-04-22 Michael Natterer <mitch@imendio.com>
|
||||||
|
|
||||||
* Makefile.am: fix library versioning (it was 0.0.0).
|
* Makefile.am: fix library versioning (it was 0.0.0).
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <gstdio.h>
|
||||||
|
|
||||||
#include "gunixmounts.h"
|
#include "gunixmounts.h"
|
||||||
#include "gfile.h"
|
#include "gfile.h"
|
||||||
@ -1887,8 +1888,24 @@ g_unix_mount_guess_should_display (GUnixMountEntry *mount_entry)
|
|||||||
mount_path = mount_entry->mount_path;
|
mount_path = mount_entry->mount_path;
|
||||||
if (mount_path != NULL)
|
if (mount_path != NULL)
|
||||||
{
|
{
|
||||||
if (g_str_has_prefix (mount_path, "/media/"))
|
if (g_str_has_prefix (mount_path, "/media/")) {
|
||||||
|
char *path;
|
||||||
|
/* Avoid displaying mounts that are not accessible to the user.
|
||||||
|
*
|
||||||
|
* See http://bugzilla.gnome.org/show_bug.cgi?id=526320 for why we
|
||||||
|
* want to avoid g_access() for every mount point.
|
||||||
|
*/
|
||||||
|
path = g_path_get_dirname (mount_path);
|
||||||
|
if (g_str_has_prefix (path, "/media/"))
|
||||||
|
{
|
||||||
|
if (g_access (path, R_OK|X_OK) != 0) {
|
||||||
|
g_free (path);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_free (path);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (g_str_has_prefix (mount_path, g_get_home_dir ()) && mount_path[strlen (g_get_home_dir())] == G_DIR_SEPARATOR)
|
if (g_str_has_prefix (mount_path, g_get_home_dir ()) && mount_path[strlen (g_get_home_dir())] == G_DIR_SEPARATOR)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user