diff options
Diffstat (limited to 'dbus/dbus-desktop-file.c')
-rw-r--r-- | dbus/dbus-desktop-file.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/dbus/dbus-desktop-file.c b/dbus/dbus-desktop-file.c index 4f17b93f..8994c4b6 100644 --- a/dbus/dbus-desktop-file.c +++ b/dbus/dbus-desktop-file.c @@ -625,30 +625,17 @@ _dbus_desktop_file_load (DBusString *filename, { DBusString str; DBusDesktopFileParser parser; - DBusStat sb; + unsigned long mtime; _DBUS_ASSERT_ERROR_IS_CLEAR (error); - /* Clearly there's a race here, but it's just to make it unlikely - * that we do something silly, we still handle doing it below. - */ - if (!_dbus_stat (filename, &sb, error)) - return NULL; - - if (sb.size > _DBUS_ONE_KILOBYTE * 128) - { - dbus_set_error (error, DBUS_ERROR_FAILED, - "Desktop file size (%ld bytes) is too large", (long) sb.size); - return NULL; - } - if (!_dbus_string_init (&str)) { _DBUS_SET_OOM (error); return NULL; } - if (!_dbus_file_get_contents (&str, filename, error)) + if (!_dbus_file_get_contents (&str, filename, &mtime, error)) { _dbus_string_free (&str); return NULL; @@ -670,7 +657,7 @@ _dbus_desktop_file_load (DBusString *filename, return NULL; } - parser.desktop_file->mtime = sb.mtime; + parser.desktop_file->mtime = mtime; parser.data = str; parser.line_num = 1; parser.pos = 0; |