Fix getting etag attributes

Fixes gjs test failures.
This commit is contained in:
David King 2023-03-06 18:28:22 +00:00
parent f82bf37a03
commit 95c4c12179
2 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,56 @@
From 4e62e55d6d0109012869a589eae2371e836e9cb3 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@endlessos.org>
Date: Mon, 6 Mar 2023 13:02:41 +0000
Subject: [PATCH] gfile: Check ETag attribute is present before trying to get
it
A regression from issue #2907.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: #2932
---
gio/gfile.c | 4 ++--
gio/gpollfilemonitor.c | 4 +++-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/gio/gfile.c b/gio/gfile.c
index 84353cb44c..7cfe1ffb4d 100644
--- a/gio/gfile.c
+++ b/gio/gfile.c
@@ -7773,7 +7773,7 @@ g_file_load_contents (GFile *file,
NULL);
if (info)
{
- *etag_out = g_strdup (g_file_info_get_etag (info));
+ *etag_out = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ETAG_VALUE) ? g_strdup (g_file_info_get_etag (info)) : NULL;
g_object_unref (info);
}
}
@@ -7847,7 +7847,7 @@ load_contents_fstat_callback (GObject *obj,
stat_res, NULL);
if (info)
{
- data->etag = g_strdup (g_file_info_get_etag (info));
+ data->etag = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ETAG_VALUE) ? g_strdup (g_file_info_get_etag (info)) : NULL;
g_object_unref (info);
}
diff --git a/gio/gpollfilemonitor.c b/gio/gpollfilemonitor.c
index 685ede964e..c4dfd99132 100644
--- a/gio/gpollfilemonitor.c
+++ b/gio/gpollfilemonitor.c
@@ -89,7 +89,9 @@ calc_event_type (GFileInfo *last,
if (last != NULL && new == NULL)
return G_FILE_MONITOR_EVENT_DELETED;
- if (g_strcmp0 (g_file_info_get_etag (last), g_file_info_get_etag (new)))
+ if (g_file_info_has_attribute (last, G_FILE_ATTRIBUTE_ETAG_VALUE) &&
+ g_file_info_has_attribute (new, G_FILE_ATTRIBUTE_ETAG_VALUE) &&
+ g_strcmp0 (g_file_info_get_etag (last), g_file_info_get_etag (new)) != 0)
return G_FILE_MONITOR_EVENT_CHANGED;
if (g_file_info_get_size (last) != g_file_info_get_size (new))
--
GitLab

View File

@ -11,6 +11,8 @@ Source0: https://download.gnome.org/sources/glib/2.75/glib-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1630260
# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/903
Patch0: gnutls-hmac.patch
# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3312.patch
Patch1: glib2-2.75.4-fix-etag-gjs.patch
BuildRequires: gcc
BuildRequires: gcc-c++