diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-29 10:37:13 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-29 10:37:13 +0900 |
commit | 8e3545296b8994a7531f4d140a9deefd32a3a9f9 (patch) | |
tree | 173c57e37f279586f2fa9735590bf1e4d7c0f543 /gio | |
parent | 63022bf833f5a02773380468c42cd81bd6b8a34d (diff) | |
download | glib-8e3545296b8994a7531f4d140a9deefd32a3a9f9.tar.gz glib-8e3545296b8994a7531f4d140a9deefd32a3a9f9.tar.bz2 glib-8e3545296b8994a7531f4d140a9deefd32a3a9f9.zip |
Imported Upstream version 2.70.1upstream/2.70.1
Diffstat (limited to 'gio')
-rw-r--r-- | gio/gdbusauthmechanismsha1.c | 2 | ||||
-rw-r--r-- | gio/gdbusobjectmanager.c | 2 | ||||
-rw-r--r-- | gio/gdesktopappinfo.c | 7 | ||||
-rw-r--r-- | gio/glocalfile.c | 11 | ||||
-rw-r--r-- | gio/glocalfileinfo.c | 2 | ||||
-rw-r--r-- | gio/gmarshal-internal.c | 4 | ||||
-rw-r--r-- | gio/gnetworkmonitornm.c | 49 | ||||
-rw-r--r-- | gio/gopenuriportal.c | 2 | ||||
-rw-r--r-- | gio/gproxyaddressenumerator.c | 13 | ||||
-rw-r--r-- | gio/gsettings-mapping.c | 10 | ||||
-rw-r--r-- | gio/gsocket.c | 2 | ||||
-rw-r--r-- | gio/gsocks5proxy.c | 23 | ||||
-rw-r--r-- | gio/meson.build | 8 | ||||
-rw-r--r-- | gio/xdgmime/xdgmimemagic.c | 12 |
14 files changed, 74 insertions, 73 deletions
diff --git a/gio/gdbusauthmechanismsha1.c b/gio/gdbusauthmechanismsha1.c index 095a6663e..94fe0bce8 100644 --- a/gio/gdbusauthmechanismsha1.c +++ b/gio/gdbusauthmechanismsha1.c @@ -881,8 +881,8 @@ keyring_generate_entry (const gchar *cookie_context, error)) { *out_id = 0; - *out_cookie = 0; g_free (*out_cookie); + *out_cookie = 0; ret = FALSE; goto out; } diff --git a/gio/gdbusobjectmanager.c b/gio/gdbusobjectmanager.c index 169e7d16f..4c4c74b43 100644 --- a/gio/gdbusobjectmanager.c +++ b/gio/gdbusobjectmanager.c @@ -211,7 +211,7 @@ g_dbus_object_manager_get_objects (GDBusObjectManager *manager) * @manager: A #GDBusObjectManager. * @object_path: Object path to look up. * - * Gets the #GDBusObjectProxy at @object_path, if any. + * Gets the #GDBusObject at @object_path, if any. * * Returns: (transfer full) (nullable): A #GDBusObject or %NULL. Free with * g_object_unref(). diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 63ef0c045..229e62143 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -2613,9 +2613,12 @@ prepend_terminal_to_vector (int *argc, if (check == NULL) check = g_find_program_in_path ("dtterm"); if (check == NULL) + check = g_find_program_in_path ("xterm"); + if (check == NULL) { - check = g_strdup ("xterm"); - g_debug ("Couldn’t find a terminal: falling back to xterm"); + g_debug ("Couldn’t find a known terminal"); + g_free (term_argv); + return FALSE; } term_argv[0] = check; term_argv[1] = g_strdup ("-e"); diff --git a/gio/glocalfile.c b/gio/glocalfile.c index 0d4a44fd9..da38adea7 100644 --- a/gio/glocalfile.c +++ b/gio/glocalfile.c @@ -2011,7 +2011,16 @@ g_local_file_trash (GFile *file, * trying to rename across a filesystem boundary, which doesn't work. So * we use g_stat here instead of g_lstat, to know where the symlink * points to. */ - g_stat (path, &file_stat); + if (g_stat (path, &file_stat)) + { + errsv = errno; + g_free (path); + + g_set_io_error (error, + _("Error trashing file %s: %s"), + file, errsv); + return FALSE; + } g_free (path); } diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c index 3867ca684..d3b327a19 100644 --- a/gio/glocalfileinfo.c +++ b/gio/glocalfileinfo.c @@ -2650,7 +2650,7 @@ set_mtime_atime (char *filename, { if (lazy_stat (filename, &statbuf, &got_stat) == 0) { - times[0].tv_sec = statbuf.st_mtime; + times[0].tv_sec = statbuf.st_atime; #if defined (HAVE_STRUCT_STAT_ST_ATIMENSEC) times[0].tv_usec = statbuf.st_atimensec / 1000; #elif defined (HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC) diff --git a/gio/gmarshal-internal.c b/gio/gmarshal-internal.c index 6858907ee..f3f7800ed 100644 --- a/gio/gmarshal-internal.c +++ b/gio/gmarshal-internal.c @@ -490,14 +490,14 @@ _g_cclosure_marshal_BOOLEAN__STRINGv (GClosure *closure, gpointer arg0; va_list args_copy; + g_return_if_fail (return_value != NULL); + G_VA_COPY (args_copy, args); arg0 = (gpointer) va_arg (args_copy, gpointer); if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL) arg0 = g_strdup (arg0); va_end (args_copy); - g_return_if_fail (return_value != NULL); - if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; diff --git a/gio/gnetworkmonitornm.c b/gio/gnetworkmonitornm.c index 5a36a0ba1..a8040fb36 100644 --- a/gio/gnetworkmonitornm.c +++ b/gio/gnetworkmonitornm.c @@ -253,48 +253,11 @@ sync_properties (GNetworkMonitorNM *nm, } static void -update_cached_property (GDBusProxy *proxy, - const char *property_name, - GVariantDict *dict) +proxy_properties_changed_cb (GDBusProxy *proxy, + GVariant *changed_properties, + GStrv invalidated_properties, + GNetworkMonitorNM *nm) { - GVariant *v; - - v = g_variant_dict_lookup_value (dict, property_name, NULL); - if (!v) - return; - g_dbus_proxy_set_cached_property (proxy, property_name, v); - g_variant_unref (v); -} - -static void -proxy_signal_cb (GDBusProxy *proxy, - const gchar *sender_name, - const gchar *signal_name, - GVariant *parameters, - GNetworkMonitorNM *nm) -{ - GVariant *asv; - GVariantDict *dict; - - if (g_strcmp0 (signal_name, "PropertiesChanged") != 0) - return; - - g_variant_get (parameters, "(@a{sv})", &asv); - if (!asv) - return; - - dict = g_variant_dict_new (asv); - g_variant_unref (asv); - if (!dict) - { - g_warning ("Failed to handle PropertiesChanged signal from NetworkManager"); - return; - } - - update_cached_property (nm->priv->proxy, "Connectivity", dict); - - g_variant_dict_unref (dict); - sync_properties (nm, TRUE); } @@ -361,8 +324,8 @@ g_network_monitor_nm_initable_init (GInitable *initable, return FALSE; } - nm->priv->signal_id = g_signal_connect (G_OBJECT (proxy), "g-signal", - G_CALLBACK (proxy_signal_cb), nm); + nm->priv->signal_id = g_signal_connect (G_OBJECT (proxy), "g-properties-changed", + G_CALLBACK (proxy_properties_changed_cb), nm); nm->priv->proxy = proxy; sync_properties (nm, FALSE); diff --git a/gio/gopenuriportal.c b/gio/gopenuriportal.c index be68569ed..6ef8f037c 100644 --- a/gio/gopenuriportal.c +++ b/gio/gopenuriportal.c @@ -108,6 +108,8 @@ g_openuri_portal_open_uri (const char *uri, errsv = errno; if (fd == -1) { + g_free (path); + g_variant_builder_clear (&opt_builder); g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errsv), "Failed to open '%s'", path); return FALSE; diff --git a/gio/gproxyaddressenumerator.c b/gio/gproxyaddressenumerator.c index d3de4940c..654baade5 100644 --- a/gio/gproxyaddressenumerator.c +++ b/gio/gproxyaddressenumerator.c @@ -262,8 +262,12 @@ g_proxy_address_enumerator_next (GSocketAddressEnumerator *enumerator, } dest_protocol = g_uri_parse_scheme (priv->dest_uri); - g_return_val_if_fail (G_IS_INET_SOCKET_ADDRESS (priv->proxy_address), - NULL); + if (!G_IS_INET_SOCKET_ADDRESS (priv->proxy_address)) + { + g_free (dest_hostname); + g_free (dest_protocol); + } + g_return_val_if_fail (G_IS_INET_SOCKET_ADDRESS (priv->proxy_address), NULL); inetsaddr = G_INET_SOCKET_ADDRESS (priv->proxy_address); inetaddr = g_inet_socket_address_get_address (inetsaddr); @@ -352,6 +356,11 @@ return_result (GTask *task) } dest_protocol = g_uri_parse_scheme (priv->dest_uri); + if (!G_IS_INET_SOCKET_ADDRESS (priv->proxy_address)) + { + g_free (dest_hostname); + g_free (dest_protocol); + } g_return_if_fail (G_IS_INET_SOCKET_ADDRESS (priv->proxy_address)); inetsaddr = G_INET_SOCKET_ADDRESS (priv->proxy_address); diff --git a/gio/gsettings-mapping.c b/gio/gsettings-mapping.c index 4db9724fe..c4ffc9b45 100644 --- a/gio/gsettings-mapping.c +++ b/gio/gsettings-mapping.c @@ -200,6 +200,8 @@ g_settings_get_mapping_int (GValue *value, l = g_variant_get_int32 (variant); else if (g_variant_type_equal (type, G_VARIANT_TYPE_INT64)) l = g_variant_get_int64 (variant); + else if (g_variant_type_equal (type, G_VARIANT_TYPE_HANDLE)) + l = g_variant_get_handle (variant); else return FALSE; @@ -291,8 +293,6 @@ g_settings_get_mapping_unsigned_int (GValue *value, u = g_variant_get_uint32 (variant); else if (g_variant_type_equal (type, G_VARIANT_TYPE_UINT64)) u = g_variant_get_uint64 (variant); - else if (g_variant_type_equal (type, G_VARIANT_TYPE_HANDLE)) - u = g_variant_get_handle (variant); else return FALSE; @@ -459,7 +459,8 @@ g_settings_get_mapping (GValue *value, else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_INT16) || g_variant_is_of_type (variant, G_VARIANT_TYPE_INT32) || - g_variant_is_of_type (variant, G_VARIANT_TYPE_INT64)) + g_variant_is_of_type (variant, G_VARIANT_TYPE_INT64) || + g_variant_is_of_type (variant, G_VARIANT_TYPE_HANDLE)) return g_settings_get_mapping_int (value, variant); else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_DOUBLE)) @@ -467,8 +468,7 @@ g_settings_get_mapping (GValue *value, else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT16) || g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT32) || - g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT64) || - g_variant_is_of_type (variant, G_VARIANT_TYPE_HANDLE)) + g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT64)) return g_settings_get_mapping_unsigned_int (value, variant); else if (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING) || diff --git a/gio/gsocket.c b/gio/gsocket.c index d5603c538..d13e2cab7 100644 --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -621,7 +621,7 @@ g_socket (gint domain, (flags & FD_CLOEXEC) == 0) { flags |= FD_CLOEXEC; - fcntl (fd, F_SETFD, flags); + (void) fcntl (fd, F_SETFD, flags); } } #else diff --git a/gio/gsocks5proxy.c b/gio/gsocks5proxy.c index 873db7ea6..948ac8b8b 100644 --- a/gio/gsocks5proxy.c +++ b/gio/gsocks5proxy.c @@ -328,7 +328,7 @@ set_connect_msg (guint8 *msg, * * The parser only requires 4 bytes. */ -#define SOCKS5_CONN_REP_LEN 255 +#define SOCKS5_CONN_REP_LEN 257 static gboolean parse_connect_reply (const guint8 *data, gint *atype, GError **error) { @@ -509,7 +509,7 @@ g_socks5_proxy_connect (GProxy *proxy, guint8 data[SOCKS5_CONN_REP_LEN]; gint atype; - if (!g_input_stream_read_all (in, data, 4, NULL, + if (!g_input_stream_read_all (in, data, 4 /* VER, REP, RSV, ATYP */, NULL, cancellable, error)) goto error; @@ -519,23 +519,26 @@ g_socks5_proxy_connect (GProxy *proxy, switch (atype) { case SOCKS5_ATYP_IPV4: - if (!g_input_stream_read_all (in, data, 6, NULL, - cancellable, error)) + if (!g_input_stream_read_all (in, data, + 4 /* IPv4 length */ + 2 /* port */, + NULL, cancellable, error)) goto error; break; case SOCKS5_ATYP_IPV6: - if (!g_input_stream_read_all (in, data, 18, NULL, - cancellable, error)) + if (!g_input_stream_read_all (in, data, + 16 /* IPv6 length */ + 2 /* port */, + NULL, cancellable, error)) goto error; break; case SOCKS5_ATYP_DOMAINNAME: - if (!g_input_stream_read_all (in, data, 1, NULL, - cancellable, error)) + if (!g_input_stream_read_all (in, data, 1 /* domain name length */, + NULL, cancellable, error)) goto error; - if (!g_input_stream_read_all (in, data, data[0] + 2, NULL, - cancellable, error)) + if (!g_input_stream_read_all (in, data, + data[0] /* domain name length */ + 2 /* port */, + NULL, cancellable, error)) goto error; break; } diff --git a/gio/meson.build b/gio/meson.build index ac3373f2b..89c6dc6f8 100644 --- a/gio/meson.build +++ b/gio/meson.build @@ -419,7 +419,7 @@ if host_system != 'windows' subdir('xdgmime') internal_deps += [xdgmime_lib] - internal_objects += [xdgmime_lib.extract_all_objects()] + internal_objects += [xdgmime_lib.extract_all_objects(recursive: false)] install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio') @@ -758,20 +758,20 @@ gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h, glib_enumtypes_ if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1 subdir('inotify') internal_deps += [ inotify_lib ] - internal_objects += [inotify_lib.extract_all_objects()] + internal_objects += [inotify_lib.extract_all_objects(recursive: false)] endif # kevent if have_func_kqueue and have_func_kevent subdir('kqueue') internal_deps += [ kqueue_lib ] - internal_objects += [kqueue_lib.extract_all_objects()] + internal_objects += [kqueue_lib.extract_all_objects(recursive: false)] endif if host_system == 'windows' subdir('win32') internal_deps += [ giowin32_lib ] - internal_objects += [giowin32_lib.extract_all_objects()] + internal_objects += [giowin32_lib.extract_all_objects(recursive: false)] endif if have_bash diff --git a/gio/xdgmime/xdgmimemagic.c b/gio/xdgmime/xdgmimemagic.c index 51be9722b..ea986652d 100644 --- a/gio/xdgmime/xdgmimemagic.c +++ b/gio/xdgmime/xdgmimemagic.c @@ -99,6 +99,8 @@ _xdg_mime_magic_matchlet_new (void) XdgMimeMagicMatchlet *matchlet; matchlet = malloc (sizeof (XdgMimeMagicMatchlet)); + if (matchlet == NULL) + return NULL; matchlet->indent = 0; matchlet->offset = 0; @@ -351,6 +353,11 @@ _xdg_mime_magic_parse_magic_line (FILE *magic_file, return XDG_MIME_MAGIC_ERROR; matchlet = _xdg_mime_magic_matchlet_new (); + + /* OOM */ + if (matchlet == NULL) + return XDG_MIME_MAGIC_ERROR; + matchlet->indent = indent; matchlet->offset = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) @@ -765,6 +772,11 @@ _xdg_mime_magic_read_magic_file (XdgMimeMagic *mime_magic, { case XDG_MIME_MAGIC_SECTION: match = _xdg_mime_magic_match_new (); + + /* OOM */ + if (match == NULL) + return; + state = _xdg_mime_magic_parse_header (magic_file, match); if (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_ERROR) _xdg_mime_magic_match_free (match); |