Skip to content
This repository has been archived by the owner on Aug 15, 2024. It is now read-only.

Update to internal 1-1.14 #130

Merged
merged 1 commit into from
Jan 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ PV = "1.0+git${SRCPV}"

S = "${WORKDIR}/git"

SRCREV = "3f499b24f3bcd66db022074f7e8b4f6ee266a3ae"
SRCREV = "5dae6451aac56bdf5be8dc5f20519da0bc55451a"

SRC_URI = "git://github.com/openssl/openssl.git;branch=OpenSSL_1_1_1-stable;protocol=https \
file://run-ptest \
Expand Down
35 changes: 35 additions & 0 deletions meta-openbmc-mods/meta-common/recipes-core/dbus/dbus.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
inherit autotools pkgconfig gettext upstream-version-is-even

LICENSE = "AFL-2.1 | GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"

SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
file://tmpdir.patch \
file://dbus-1.init \
file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
file://stop_using_selinux_set_mapping.patch \
"

SRC_URI[md5sum] = "28d92a7a576f7feec7ddb3bb87b28b43"
SRC_URI[sha256sum] = "9da1e3f2b73f75eec0a9e4509d64be43909d1f2853fe809528a0a53984d76420"

EXTRA_OECONF = "--disable-xml-docs \
--disable-doxygen-docs \
--enable-largefile \
--with-system-socket=/run/dbus/system_bus_socket \
"
EXTRA_OECONF:append:class-target = " SYSTEMCTL=${base_bindir}/systemctl"

PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
user-session \
"
PACKAGECONFIG:class-native = ""
PACKAGECONFIG:class-nativesdk = ""

PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
PACKAGECONFIG[verbose-mode] = "--enable-verbose-mode,,,"
PACKAGECONFIG[audit] = "--enable-libaudit,--disable-libaudit,audit"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
From b8f84bd39485d3977625c9a8b8e8cff5d23be56f Mon Sep 17 00:00:00 2001
From: Roy Li <[email protected]>
Date: Thu, 27 Feb 2014 09:05:02 +0800
Subject: [PATCH] dbus: clear guid_from_server if send_negotiate_unix_fd
failed

Upstream-Status: Submitted

bus-test dispatch test failed with below information:
./bus/bus-test: Running message dispatch test
Activating service name='org.freedesktop.DBus.TestSuiteEchoService'
Successfully activated service 'org.freedesktop.DBus.TestSuiteEchoService'
6363: assertion failed "_dbus_string_get_length (& DBUS_AUTH_CLIENT (auth)->guid_from_server) == 0" file "dbus-auth.c" line 1545 function process_ok
./bus/bus-test(_dbus_print_backtrace+0x29) [0x80cb969]
./bus/bus-test(_dbus_abort+0x14) [0x80cfb44]
./bus/bus-test(_dbus_real_assert+0x53) [0x80b52c3]
./bus/bus-test() [0x80e24da]
./bus/bus-test(_dbus_auth_do_work+0x388) [0x80e3848]
./bus/bus-test() [0x80aea49]
./bus/bus-test() [0x80affde]
./bus/bus-test(_dbus_transport_handle_watch+0xb1) [0x80ad841]
./bus/bus-test(_dbus_connection_handle_watch+0x104) [0x8089174]
./bus/bus-test(dbus_watch_handle+0xd8) [0x80b15e8]
./bus/bus-test(_dbus_loop_iterate+0x4a9) [0x80d1509]
./bus/bus-test(bus_test_run_clients_loop+0x5d) [0x808129d]
./bus/bus-test() [0x806cab0]
./bus/bus-test() [0x806e0ca]
./bus/bus-test() [0x806da6f]
./bus/bus-test(_dbus_test_oom_handling+0x18c) [0x80b5c8c]
./bus/bus-test() [0x806f723]
./bus/bus-test(bus_dispatch_test+0x3c) [0x8071aac]
./bus/bus-test(main+0x1b7) [0x805acc7]
/lib/libc.so.6(__libc_start_main+0xf3) [0x45f919b3]
./bus/bus-test() [0x805ae39]

The stack is below:
#0 0xffffe425 in __kernel_vsyscall ()
#1 0x45fa62d6 in raise () from /lib/libc.so.6
#2 0x45fa9653 in abort () from /lib/libc.so.6
#3 0x080cfb65 in _dbus_abort () at dbus-sysdeps.c:94
#4 0x080b52c3 in _dbus_real_assert (condition=0,
condition_text=condition_text@entry=0x8117a38 "_dbus_string_get_length (& DBUS_AUTH_CLIENT (auth)->guid_from_server) == 0",
file=file@entry=0x8117273 "dbus-auth.c", line=line@entry=1545,
func=func@entry=0x8117f8e <__FUNCTION__.3492> "process_ok")
data=0x8157290) at dbus-connection.c:1515
#0 0x00000033fee353e9 in raise () from /lib64/libc.so.6
#1 0x00000033fee38508 in abort () from /lib64/libc.so.6
#2 0x000000000047d585 in _dbus_abort () at dbus-sysdeps.c:94
#3 0x0000000000466486 in _dbus_real_assert (condition=<optimized out>,
condition_text=condition_text@entry=0x4c2988 "_dbus_string_get_length (& DBUS_AUTH_CLIENT (auth)->guid_from_server) == 0",
file=file@entry=0x4c21a5 "dbus-auth.c", line=line@entry=1546,
func=func@entry=0x4c2fce <__FUNCTION__.3845> "process_ok")
at dbus-internals.c:931
#4 0x000000000048d424 in process_ok (args_from_ok=0x7fffffffe480,
auth=0x6ff340) at dbus-auth.c:1546
#5 handle_client_state_waiting_for_data (auth=0x6ff340,
command=<optimized out>, args=0x7fffffffe480) at dbus-auth.c:1996
#6 0x000000000048e789 in process_command (auth=0x6ff340) at dbus-auth.c:2208
#7 _dbus_auth_do_work (auth=0x6ff340) at dbus-auth.c:2458
#8 0x000000000046091d in do_authentication (
transport=transport@entry=0x6ffaa0, do_reading=do_reading@entry=1,
do_writing=do_writing@entry=0,
auth_completed=auth_completed@entry=0x7fffffffe55c)
at dbus-transport-socket.c:442
#9 0x0000000000461d08 in socket_handle_watch (transport=0x6ffaa0,
watch=0x6f4190, flags=1) at dbus-transport-socket.c:921
#10 0x000000000045fa3a in _dbus_transport_handle_watch (transport=0x6ffaa0,

Once send_negotiate_unix_fd failed, this failure will happen, since
auth->guid_from_server has been set to some value before
send_negotiate_unix_fd. send_negotiate_unix_fd failure will lead to
this auth be handled by process_ok again, but this auth->guid_from_server
is not zero.

So we should clear auth->guid_from_server if send_negotiate_unix_fd failed

Signed-off-by: Roy Li <[email protected]>
---
dbus/dbus-auth.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dbus/dbus-auth.c b/dbus/dbus-auth.c
index d2c37a7..37b45c6 100644
--- a/dbus/dbus-auth.c
+++ b/dbus/dbus-auth.c
@@ -1571,8 +1571,13 @@ process_ok(DBusAuth *auth,
_dbus_verbose ("Got GUID '%s' from the server\n",
_dbus_string_get_const_data (& DBUS_AUTH_CLIENT (auth)->guid_from_server));

- if (auth->unix_fd_possible)
- return send_negotiate_unix_fd(auth);
+ if (auth->unix_fd_possible) {
+ if (!send_negotiate_unix_fd(auth)) {
+ _dbus_string_set_length (& DBUS_AUTH_CLIENT (auth)->guid_from_server, 0);
+ return FALSE;
+ }
+ return TRUE;
+ }

_dbus_verbose("Not negotiating unix fd passing, since not possible\n");
return send_begin (auth);
--
1.7.10.4

Loading