X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dbus%2Fdbus-file-win.c;h=06a8ea1ced4a74d103d495c3679a2b46968442d4;hb=bb8dd7fec5389db4df9b5e8863974149e8a650dc;hp=932b459c2e2e41fdb4d2777b924c4fffa58c5f09;hpb=e419a5cff71bf71c626223393692c341f3db35e9;p=platform%2Fupstream%2Fdbus.git diff --git a/dbus/dbus-file-win.c b/dbus/dbus-file-win.c index 932b459..06a8ea1 100644 --- a/dbus/dbus-file-win.c +++ b/dbus/dbus-file-win.c @@ -68,8 +68,6 @@ _dbus_file_read (HANDLE hnd, data = _dbus_string_get_data_len (buffer, start, count); - again: - result = ReadFile (hnd, data, count, &bytes_read, NULL); if (result == 0) { @@ -114,7 +112,7 @@ _dbus_file_get_contents (DBusString *str, DWORD fsize; DWORD fsize_hi; int orig_len; - int total; + unsigned int total; const char *filename_c; _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -206,12 +204,14 @@ _dbus_file_get_contents (DBusString *str, * * @param str the string to write out * @param filename the file to save string to + * @param world_readable if true, ensure file is world readable * @param error error to be filled in on failure * @returns #FALSE on failure */ dbus_bool_t _dbus_string_save_to_file (const DBusString *str, const DBusString *filename, + dbus_bool_t world_readable, DBusError *error) { HANDLE hnd; @@ -261,6 +261,7 @@ _dbus_string_save_to_file (const DBusString *str, filename_c = _dbus_string_get_const_data (filename); tmp_filename_c = _dbus_string_get_const_data (&tmp_filename); + /* TODO - support world-readable in an atomic fashion */ hnd = CreateFileA (tmp_filename_c, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, @@ -273,6 +274,11 @@ _dbus_string_save_to_file (const DBusString *str, _dbus_win_free_error_string (emsg); goto out; } + if (world_readable) + { + if (! _dbus_make_file_world_readable (&tmp_filename, error)) + goto out; + } _dbus_verbose ("tmp file %s hnd %p opened\n", tmp_filename_c, hnd);