+2008-05-17 Matthias Clasen <mclasen@redhat.com>
+
+ Bug 530196 – _g_local_file_has_trash_dir() doesn't handle st_dev == 0
+
+ * glocalfile.c (_g_local_file_has_trash_dir): Handle the case that
+ st_dev might be zero.
+
2008-05-16 Tor Lillqvist <tml@novell.com>
* win32/gwin32directorymonitor.c: #define _WIN32_WINNT 0x0400 to
gboolean
_g_local_file_has_trash_dir (const char *dirname, dev_t dir_dev)
{
- static gsize home_dev = 0;
+ static gsize home_dev_set = 0;
+ static dev_t home_dev;
char *topdir, *globaldir, *trashdir, *tmpname;
uid_t uid;
char uid_str[32];
gboolean res;
int statres;
- if (g_once_init_enter (&home_dev))
+ if (g_once_init_enter (&home_dev_set))
{
- gsize setup_value = 0;
struct stat home_stat;
g_stat (g_get_home_dir (), &home_stat);
- setup_value = home_stat.st_dev;
- g_once_init_leave (&home_dev, setup_value);
+ home_dev = home_stat.st_dev;
+ g_once_init_leave (&home_dev_set, 1);
}
/* Assume we can trash to the home */
- if (dir_dev == (dev_t)home_dev)
+ if (dir_dev == home_dev)
return TRUE;
topdir = find_mountpoint_for (dirname, dir_dev);