Compare commits
No commits in common. "e5e3ce02d13b99b3bbe4639f1167b6ae5db09f69" and "72ddbe94ab69ddba6bb161dbb2a4a14a8fca6757" have entirely different histories.
e5e3ce02d1
...
72ddbe94ab
@ -1,40 +0,0 @@
|
|||||||
From fbad64abe28a96f591a30e3a5d3189c10172a414 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Williamson <awilliam@redhat.com>
|
|
||||||
Date: Tue, 30 Aug 2022 10:03:57 -0700
|
|
||||||
Subject: [PATCH 1/2] rest_proxy_call_sync: bail out if no payload
|
|
||||||
|
|
||||||
goa-daemon is crashing on suspend/resume with a traceback that
|
|
||||||
points here: it calls rest_proxy_call_sync, that calls
|
|
||||||
_rest_proxy_send_message, assumes it gets a `payload` back,
|
|
||||||
and calls `finish_call` with it. However, it's not actually
|
|
||||||
guaranteed that `_rest_proxy_send_message` will return a payload
|
|
||||||
(a `GBytes`). There are three ways it can return `NULL` instead:
|
|
||||||
if it's passed a wrong proxy or message, or - when built against
|
|
||||||
libsoup3 - if there is an error sending the message (it passes
|
|
||||||
through the return value of `soup_session_send_and_read`, and
|
|
||||||
that's documented to be `NULL` on error).
|
|
||||||
|
|
||||||
If `payload` comes back `NULL`, let's just return `FALSE`, like
|
|
||||||
we do if there's a problem with the call or message.
|
|
||||||
|
|
||||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
|
||||||
---
|
|
||||||
rest/rest-proxy-call.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/rest/rest-proxy-call.c b/rest/rest-proxy-call.c
|
|
||||||
index 851b397..07b8b49 100644
|
|
||||||
--- a/rest/rest-proxy-call.c
|
|
||||||
+++ b/rest/rest-proxy-call.c
|
|
||||||
@@ -1428,6 +1428,8 @@ rest_proxy_call_sync (RestProxyCall *call,
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
payload = _rest_proxy_send_message (priv->proxy, message, priv->cancellable, error_out);
|
|
||||||
+ if (!payload)
|
|
||||||
+ return FALSE;
|
|
||||||
|
|
||||||
ret = finish_call (call, message, payload, error_out);
|
|
||||||
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
||||||
@ -1,52 +0,0 @@
|
|||||||
From 49c2d0ac00b959ce53cc00ca4e7758c21085722f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Williamson <awilliam@redhat.com>
|
|
||||||
Date: Tue, 30 Aug 2022 10:59:01 -0700
|
|
||||||
Subject: [PATCH 2/2] Handle some potential problems in parsing oauth2 access
|
|
||||||
tokens
|
|
||||||
|
|
||||||
It's possible for `_rest_proxy_send_message` to return `NULL`,
|
|
||||||
which would mean the `payload` here would be `NULL`. If so,
|
|
||||||
we're not going to be able to do anything, so we should just
|
|
||||||
bail out.
|
|
||||||
|
|
||||||
It's also possible for `json_parser_load_from_data` to return
|
|
||||||
`FALSE` without setting an error. The most obvious way would be
|
|
||||||
if `data` was `NULL`, which the bailout avoids, but it could
|
|
||||||
also happen if we pass an invalid parser somehow. Let's just
|
|
||||||
handle that too, to be safe.
|
|
||||||
|
|
||||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
|
||||||
---
|
|
||||||
rest/rest-oauth2-proxy.c | 5 ++++-
|
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/rest/rest-oauth2-proxy.c b/rest/rest-oauth2-proxy.c
|
|
||||||
index 9511f97..a715b2b 100644
|
|
||||||
--- a/rest/rest-oauth2-proxy.c
|
|
||||||
+++ b/rest/rest-oauth2-proxy.c
|
|
||||||
@@ -68,18 +68,21 @@ rest_oauth2_proxy_parse_access_token (RestOAuth2Proxy *self,
|
|
||||||
gsize size;
|
|
||||||
gint expires_in;
|
|
||||||
gint created_at;
|
|
||||||
+ gboolean ret;
|
|
||||||
|
|
||||||
g_return_if_fail (REST_IS_OAUTH2_PROXY (self));
|
|
||||||
+ g_return_if_fail (payload);
|
|
||||||
|
|
||||||
data = g_bytes_get_data (payload, &size);
|
|
||||||
|
|
||||||
parser = json_parser_new ();
|
|
||||||
- json_parser_load_from_data (parser, data, size, &error);
|
|
||||||
+ ret = json_parser_load_from_data (parser, data, size, &error);
|
|
||||||
if (error != NULL)
|
|
||||||
{
|
|
||||||
g_task_return_error (task, error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
+ g_return_if_fail (ret);
|
|
||||||
|
|
||||||
root = json_parser_get_root (parser);
|
|
||||||
root_object = json_node_get_object (root);
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
||||||
72
rest.spec
72
rest.spec
@ -1,22 +1,12 @@
|
|||||||
Name: rest
|
Name: rest
|
||||||
Version: 0.9.1
|
Version: 0.9.1
|
||||||
Release: 4
|
Release: 1
|
||||||
Summary: A library for access to RESTful web services
|
Summary: A library for access to RESTful web services
|
||||||
License: LGPLv2
|
License: LGPLv2
|
||||||
URL: https://www.gnome.org
|
URL: https://www.gnome.org
|
||||||
Source0: https://download.gnome.org/sources/%{name}/0.9/%{name}-%{version}.tar.xz
|
Source0: https://download.gnome.org/sources/%{name}/0.8/%{name}-%{version}.tar.xz
|
||||||
|
BuildRequires: glib2-devel libsoup3-devel libxml2-devel gobject-introspection-devel
|
||||||
Patch0: 0001-rest_proxy_call_sync-bail-out-if-no-payload.patch
|
BuildRequires: gtk-doc autoconf automake libtool libxslt meson libadwaita-devel gtksourceview5-devel gi-docgen
|
||||||
Patch1: 0002-Handle-some-potential-problems-in-parsing-oauth2-acc.patch
|
|
||||||
Patch2: skip-some-failed-tests.patch
|
|
||||||
|
|
||||||
%if "0%{?product_family}" == "0"
|
|
||||||
BuildRequires: libsoup3-devel
|
|
||||||
%else
|
|
||||||
BuildRequires: libsoup-devel
|
|
||||||
%endif
|
|
||||||
BuildRequires: glib2-devel libxml2-devel gobject-introspection-devel
|
|
||||||
BuildRequires: libxslt meson json-glib-devel libadwaita-devel gtksourceview5-devel gi-docgen
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This library has been designed to make it easier to access web services that
|
This library has been designed to make it easier to access web services that
|
||||||
@ -31,6 +21,8 @@ Requires: %{name} = %{version}-%{release}
|
|||||||
%description devel
|
%description devel
|
||||||
This package is the development files for rest.
|
This package is the development files for rest.
|
||||||
|
|
||||||
|
%package_help
|
||||||
|
|
||||||
%package demo
|
%package demo
|
||||||
Summary: Demo application for %{name}
|
Summary: Demo application for %{name}
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
@ -38,28 +30,18 @@ Requires: %{name} = %{version}-%{release}
|
|||||||
%description demo
|
%description demo
|
||||||
Demo application for %{name}.
|
Demo application for %{name}.
|
||||||
|
|
||||||
%package_help
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n %{name}-%{version} -p1
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if "0%{?product_family}" == "0"
|
|
||||||
%meson
|
%meson
|
||||||
%else
|
|
||||||
%meson -Dsoup2=true
|
|
||||||
%endif
|
|
||||||
%meson_build
|
%meson_build
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%meson_install
|
%meson_install
|
||||||
|
|
||||||
%ldconfig_scriptlets
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
%check
|
|
||||||
%meson_test
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc AUTHORS
|
%doc AUTHORS
|
||||||
@ -69,6 +51,13 @@ Demo application for %{name}.
|
|||||||
%{_libdir}/girepository-1.0/Rest-*
|
%{_libdir}/girepository-1.0/Rest-*
|
||||||
%{_libdir}/girepository-1.0/RestExtras-*
|
%{_libdir}/girepository-1.0/RestExtras-*
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_datadir}/doc/librest-1.0
|
||||||
|
|
||||||
|
%files demo
|
||||||
|
%{_datadir}/applications/org.gnome.RestDemo.desktop
|
||||||
|
%{_bindir}/librest-demo
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
@ -78,40 +67,11 @@ Demo application for %{name}.
|
|||||||
%{_datadir}/gir-1.0/Rest-*
|
%{_datadir}/gir-1.0/Rest-*
|
||||||
%{_datadir}/gir-1.0/RestExtras-*
|
%{_datadir}/gir-1.0/RestExtras-*
|
||||||
%{_libdir}/pkgconfig/rest*
|
%{_libdir}/pkgconfig/rest*
|
||||||
|
%{_datadir}/doc/librest-1.0/
|
||||||
%files demo
|
|
||||||
%{_datadir}/applications/org.gnome.RestDemo.desktop
|
|
||||||
%{_bindir}/librest-demo
|
|
||||||
|
|
||||||
%files help
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%doc README.md
|
|
||||||
%{_datadir}/doc/librest-1.0
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Jul 03 2024 zhouyihang <zhouyihang3@h-partners.com> - 0.9.1-4
|
* Thu Jul 28 2022 fushanqing <fushanqing@kylinos.cn> - 0.9.1-1
|
||||||
- Type:requirements
|
- update rest to 0.9.1
|
||||||
- Id:NA
|
|
||||||
- SUG:NA
|
|
||||||
- DESC:use libsoup2 instead of libsoup3 for build when no libsoup3 provided
|
|
||||||
|
|
||||||
* Thu Oct 26 2023 zhouyihang <zhouyihang3@h-partners.com> - 0.9.1-3
|
|
||||||
- Type:requirements
|
|
||||||
- Id:NA
|
|
||||||
- SUG:NA
|
|
||||||
- DESC:enable test
|
|
||||||
|
|
||||||
* Sat Mar 25 2023 zhouyihang <zhouyihang3@h-partners.com> - 0.9.1-2
|
|
||||||
- Type:requirements
|
|
||||||
- Id:NA
|
|
||||||
- SUG:NA
|
|
||||||
- DESC:remove useless libs
|
|
||||||
|
|
||||||
* Thu Feb 02 2023 zhouyihang <zhouyihang3@h-partners.com> - 0.9.1-1
|
|
||||||
- Type:requirements
|
|
||||||
- Id:NA
|
|
||||||
- SUG:NA
|
|
||||||
- DESC:update rest to 0.9.1
|
|
||||||
|
|
||||||
* Wed Nov 09 2022 zhouyihang <zhouyihang3@h-partners.com> - 0.8.1-8
|
* Wed Nov 09 2022 zhouyihang <zhouyihang3@h-partners.com> - 0.8.1-8
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
|
|||||||
@ -1,37 +0,0 @@
|
|||||||
From ae32d054450ceaa50e429c51c565a3ca0eb93ee0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: zhouyihang <zhouyihang3@h-partners.com>
|
|
||||||
Date: Tue, 26 Sep 2023 15:49:38 +0800
|
|
||||||
Subject: [PATCH] skip some failed tests
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/flickr.c | 1 +
|
|
||||||
tests/lastfm.c | 1 +
|
|
||||||
2 files changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/tests/flickr.c b/tests/flickr.c
|
|
||||||
index 2d1ee99..20f6be1 100644
|
|
||||||
--- a/tests/flickr.c
|
|
||||||
+++ b/tests/flickr.c
|
|
||||||
@@ -124,6 +124,7 @@ test_build_login_url (void)
|
|
||||||
int
|
|
||||||
main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
+ exit(77);
|
|
||||||
g_test_init (&argc, &argv, NULL);
|
|
||||||
|
|
||||||
g_test_add_func ("/flickr/flickr", test_flickr);
|
|
||||||
diff --git a/tests/lastfm.c b/tests/lastfm.c
|
|
||||||
index 3c11483..a884f9f 100644
|
|
||||||
--- a/tests/lastfm.c
|
|
||||||
+++ b/tests/lastfm.c
|
|
||||||
@@ -85,6 +85,7 @@ test_lastfm ()
|
|
||||||
int
|
|
||||||
main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
+ exit(77);
|
|
||||||
g_test_init (&argc, &argv, NULL);
|
|
||||||
|
|
||||||
g_test_add_func ("/lastm/lastfm", test_lastfm);
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user