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

Commit

Permalink
Merge pull request #130 from Intel-BMC/update
Browse files Browse the repository at this point in the history
Update to internal 1-1.14
  • Loading branch information
dheerajpdsk authored Jan 1, 2024
2 parents 0127bdb + faa4950 commit ac27a50
Show file tree
Hide file tree
Showing 30 changed files with 1,564 additions and 249 deletions.
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

0 comments on commit ac27a50

Please sign in to comment.