diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2022-09-30 21:13:31 +0300 |
---|---|---|
committer | Andrew Geissler <andrew@geissonator.com> | 2022-10-03 05:08:14 +0300 |
commit | 87f5cff0cfca11f43851cb3d7d49dd96ced7fe03 (patch) | |
tree | 5a748b271a6f682219155ce8292ca034c1b0411c /poky/meta/recipes-devtools/binutils | |
parent | 251ad11cced0e148ba7529369597bf1d8d851032 (diff) | |
download | openbmc-87f5cff0cfca11f43851cb3d7d49dd96ced7fe03.tar.xz |
subtree updates
meta-raspberrypi: c57b464b88..45d56d82b7:
Andrei Gherzan (8):
linux-firmware-rpidistro: Fix wireless on Raspberry Pi 4
sdcard_image-rpi.bbclass: Move SDIMG_KERNELIMAGE definitions to their machines
raspberrypi0-2w.conf: Include the RPi 0-2w dtb for all 32-bit machines
rpi-base.inc: Split IMAGE_BOOT_FILES for kernel image
Add support for a ARMv7 machine supporting multiple Raspberry Pi boards
ci: Add raspberrypi-armv7 to the build matrix
Add support for a ARMv8 machine supporting multiple Raspberry Pi boards
ci: Add raspberrypi-armv8 to the build matrix
Chris Blättermann (1):
meta-raspberrypi: Include the device tree for Raspberry Pi CM4S
Khem Raj (2):
rpidistro-vlc,rpidistro-ffmpeg: Limit scope to just rpi machines
layers: Add langdale to LAYERSERIES_COMPAT
Vincent Davis Jr (4):
raspidistro-ffmpeg: add support for building raspidistro ffmpeg
rpidistro-vlc: add rpidistro VLC build (with MMAL enabled)
Add support for optional selection of vlc and ffmpeg
docs: add info for raspberrypi distro vlc
Vinicius Aquino (1):
raspberrypi-firmware: Update to 20220830 snapshot
meta-openembedded: a755af4fb5..0782ea454a:
Adrian Freihofer (1):
networkmanager: update 1.38.0 -> 1.40.0
Alejandro Enedino Hernandez Samaniego (1):
emacs: Update to version 28.2
Alex Kiernan (2):
libcoap: Fix gnutls/openssl/mbedtls PACKAGECONFIG conflicts
libcoap: Upgrade 4.3.0 -> 4.3.1
Alexander Kanavin (7):
mozjs-91: update to 91.13.0
collectd: add a python PACKAGECONFIG, off by default
zbar: disable python3 support as incompatible with py 3.11
libsigrockdecode: add python 3.11 compatibility
minifi-cpp: disable python support as incompatible with python 3.11
mozjs-91: backport a python 3.11 compatibility patch
mozjs-78: remove the recipe
Andreas Müller (1):
octave: upgrade 7.1.0 -> 7.2.0
Andrej Kozemcak (1):
squid: upgrade 4.15 -> 5.7
Andres Beltran (1):
Make graph dependencies optional
Bernhard Messerklinger (1):
libconfig-tiny-perl: add recipe
Chen Qi (2):
passwdqc: fix the libpasswdqc FILES setting
polkit: refresh patch
Frank de Brabander (1):
ntp: add missing runtime dependency on libgcc for sntp
Gianfranco Costamagna (1):
vboxguestdrivers: upgrade 6.1.36 -> 6.1.38
Hitendra Prajapati (1):
wireshark: CVE-2022-3190 Infinite loop in legacy style dissector
Howard Cochran (1):
ufw: Fix "could not find required binary 'iptables'"
Ivan Maidanski (1):
bdwgc: Fix typo in EXTRA_OECONF and remove unneeded extra CFLAGS
Jan Vermaete (1):
makeself: upate anonymous git access and dropped man page.
Khem Raj (140):
gtk+: Fix function signature of create_menu()
ippool: Fix build with clang15
corosync: Upgrade to 3.1.6
dlm: Upgrade to 4.1.1
dante: Upgrade to 1.4.3
ez-ipupdate: Fix build with clang
openflow: Include sys/stat.h for fchmod
nautilus: Backport a patch to fix build with clang-15
mctp: Update to latest tip of trunk
ypbind-mt: Upgrade to 2.7.2
packagegroup-meta-networking: Remove ypbind-mt on musl
fping: Fix build with musl
iscsi-initiator-utils: Upgrade to 2.1.7
radvd: Fix build on musl
linux-atm: Include missing string.h
memcached: Upgrade to 1.6.17
openlldp: Upgrade to 1.1.0
ettercap: Pass -D_GNU_SOURCE
rdma-core: Fix build with musl
openl2tp: Provide prototype for l2tp_api_rpc_check_request
iscsi-initiator-utils: Avoid hardcoding sed to /usr/bin/sed
toybox: Remove mount.h conflict fix
libuser: Upgrade to 0.63
gnome-keyring: Upgrade to 42.1
folks: Disable LTO and implicit-function-declaration as error
libgtop: Fix build with clang
ot-daemon,ot-br-posix: Fix mbedtls module builds
libcurses-perl: Fix main prototype in testtyp.c
rasdaemon: Upgrade to 0.6.8
psqlodbc: Upgrade to 13.02.0000
soci: Fix build with clang 15
geany-plugins: Fix type error found with clang 15
nlohmann-fifo: Update to tip of trunk
xfce4-dev-tools: Fix configure check for libX11
frr: Fix configure check for libreadline
quagga: Fix AC_CHECK_LIB for libreadline
libutempter: Upgrade to 1.2.2-alt1
libuio: Update to latest tip of trunk
serial-forward: Correct typo in specifying string.h header
mcelog: Upgrade to v189
fvwm: Disable int-conversion and implicit-int warnings as errors
hddtemp: Add missing prototype for ata_get_powermode in sata.c
nana: Include stdlib.h form exit() and abort() functions
libsmi: Fix build with clang 15
ckermit: Fix build with clang
linuxptp: Include string.h for strncpy()
wifi-test-suite: Fix build with clang
xf86-video-nouveau: Do not treat implicit-function-declaration as error
android-tools: Add protoype declaration for b64_pton
libio-pty-perl: Fix build on musl
xrdp: Fix build with clang-15
libpwquality: Do not use fgetpwent_r on musl
lmbench: Add patch to fix typo including string.h header
lxdm: Fix msghdr initialization on musl
zabbix: Upgrade to 6.2.2
epeg: Fix AC_CHECK_LIB for libjpeg and libexif
gensio: Fix AC_CHECK_LIB for libwrap
pam-plugin-ccreds: Fix AC_CHECK_LIB for libdb
sblim-sfcb: Fix AC_CHECK_LIB tests for various libraries
rdfind: Fix AC_CHECK_LIB for libnettle
srecord: Fix AC_CHECK_LIB for gpg-error
tokyocabinet: Fix AC_CHECK_LIB test functions
libcereal: Do not use uniform_int_distribution<char> template
raptor2: Match reutrn type from RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE
pam-ssh-agent-auth: Fix __progname configure check
daemontools: Fix build with clang15 and musl
pmtools: Update patch to include string.h and function prototype for main
uw-imap: Fix build with clang/musl
libx86: Fix pointer typecasting in assignment
obconf: Add fixes for missing function prototypes
sblim-sfcc: Fix build with clang
sblim-sfcb: Add missing headers file for clang/musl
sanlock: Add missing prototype for mem* functions
geis: Add missing prototypes to functions
libgxim: Enable debug mode
hplip: Upgrade to 3.22.6
scsirastools: Pass -D_LARGEFILE64_SOURCE via CFLAGS
con2fbmap: Include string.h for strerror
directfb-examples: Fix pthread_t assignment type
uml-utilities: Add missing headers for exit and str+ functions
oprofile: Fix configure check for perf_events support
libmcrypt: Suppress implicit-int warnings as errors
gtkperf: Define prototype for setup_appdata
cyrus-sasl: Fix time.h detection logic in configure
enscript: Include string.h form str* function prototypes
glm: Disable clang specific warnings
mg: Upgrade to 20220614 release
gphoto2: Upgrade to 2.5.28
ipmiutil: Add missing headers for protypes of free/malloc/atoi
cdrkit: Add missing header for function prototypes
fluentbit: Drop redundant patch
minifi-cpp: Disable gnu extention of strerror_r when using musl
augeas: Check for __GLIBC__ to use gnu extention for strerror_r
nlohmann-fifo: Disable cpp11 shuffle with clang/libc++
ipmitool: Update to 1.8.19
autofs: Backport innetgr and strerror_r musl patches
linux-atm: Remove AC_CHECK_LIB for libresolv
hdf5: Upgrade to 1.13.2
openldap: Fix configure check for pthread_detach
libimobiledevice: Explicitly pass -D_GNU_SOURCE via cflags
jq: Upgrade to latest and fix configure tests
lcdproc: Fix build on non-x86 and arm architectures
libsmi: Define _DEFAULT_SOURCE for timegm API
tftp-hpa: Fix includes for bsd_signal()
sblim-sfcb: Include config.h before using CONFIG_ERROR_H
minifi-cpp: Disable lto.
ntp: Fix check for pthread_detach
netkit-telnet: Add time.h from strftime/time prototypes
passwdqc: Upgrade to 2.0.2
lmbench: Fix build time tests and use the scripts/build
mcpp: Fix build with clang
ot-br-posix: Fix unused variable error
sthttpd: Define _GNU_SOURCE if HAVE_SIGSET is set
libesmtp: Enable gnu strerror_r on glibc
android-tools: Use local strlcpy implementation on glibc
uw-imap: Avoid programs using gets()
matplotlib: Upgrade to 3.5.3
cockpit: Update to 276
geary: Fix build with clang
toybox: Fix build on 32bit arches with 64bit time_t defaults
libcdio: Define _LARGEFILE64_SOURCE
rocksdb: Upgrade to 7.5.3 release
fwupd: Upgrade to 1.8.4
luajit: Use builtin for __clear_cache on clang
kexec-tools-klibc: Fix type mismatch in calls to dtb_set_initrd on mips
minifi-cpp: Fix build on musl
aom: Provide missing function prototypes
vulkan-cts,opengl-es-cts: Upgrade to1.3.3.1 and 3.2.8 respectively
python3-lxml: Delete
fwupd: Fix tostring() call to not have xml_declaration param
sox: Enable -D_FILE_OFFSET_BITS=64 and depend on libtool
rdfind: Fix patch-fuzz warnings
fwupd: Drop sqlite3 from default deps
sqlite: Drop sqlite2 recipe
wvstreams: Add missing dependency on boost
jack: Upgrade to 1.19.21
python3-grpcio-tools: Disable clang's musttail attribute on mips
fwupd: Replace python3.7 patch with upstreamed one
mdio-tools,mdio-netlink: Upgrade recipes to 1.2.0
python3-requests-unixsocket: Fix override syntax
Lei Maohui (5):
fltk: Fix buildpaths warning.
exiv2: Fix buildpaths warning.
tracker-miners: Fix buildpaths warning.
gexiv2: Fix buildpaths warning.
mariadb: Fix buildpaths warning.
Leon Anavi (24):
python3-imageio: Upgrade 2.21.1 -> 2.21.2
python3-prompt-toolkit: Upgrade 3.0.30 -> 3.0.31
python3-haversine: Upgrade 2.6.0 -> 2.7.0
python3-transitions: Upgrade 0.8.11 -> 0.9.0
python3-astroid: Upgrade 2.12.5 -> 2.12.9
python3-imageio: Upgrade 2.21.2 -> 2.21.3
python3-portion: Upgrade 2.2.0 -> 2.3.0
python3-networkx: Upgrade 2.8.5 -> 2.8.6
python3-prettytable: Upgrade 3.3.0 -> 3.4.1
python3-pydantic: Upgrade 1.9.1 -> 1.10.2
python3-soupsieve: Upgrade 2.3.1 -> 2.3.2.post1
python3-awesomeversion: Upgrade 22.8.0 -> 22.9.0
python3-ujson: Upgrade 5.4.0 -> 5.5.0
python3-marshmallow: Upgrade 3.17.1 -> 3.18.0
python3-elementpath: Upgrade 3.0.1 -> 3.0.2
python3-traitlets: Upgrade 5.3.0 -> 5.4.0
python3-joblib: Upgrade 1.1.0 -> 1.2.0
python3-astroid: Upgrade 2.12.9 -> 2.12.10
python3-imageio: Upgrade 2.21.3 -> 2.22.0
python3-email-validator: Upgrade 1.2.1 -> 1.3.0
python3-termcolor: Upgrade 1.1.0 -> 2.0.1
python3-aiohttp: Upgrade 3.8.1 -> 3.8.3
python3-pytz-deprecation-shim: Runtime dependencies
python3-license-expression: Upgrade 21.6.14 -> 30.0.0
Luca Boccassi (1):
dbus-broker: update to v32
Markus Volk (4):
pipewire: update 0.3.56 -> 0.3.57
flatbuffers: upgrade 2.0.6 -> 2.0.8
appstream-glib: fix manpage generation
jansson: use cmake instead of autotools
Martin Jansa (2):
lvm2: use bfd even with ld-is-gold in DISTRO_FEATURES
libcec: fix runtime dependencies for ${PN}-examples
Ming Liu (1):
libusbgx: add PACKAGECONFIG to make build predicable
Mingli Yu (2):
python3-pyzmq: Fix buildpaths issue
python3-pyzmq: Add RDEPENDS for python3-pyzmq-ptest
Naveen Saini (1):
ocl-icd: add nativesdk support
Ovidiu Panait (1):
redis: build with USE_SYSTEMD=yes when systemd is enabled
Patrick Williams (1):
unifex: remove recipe
Philippe Coval (3):
lvgl: Add dialog-lvgl recipe as demo example
pim435: Relocate sources to eclipse
ot-br-posix: Add dep to ipset as used by firewall
Riyaz Khan (2):
sdbus-c++: Upgrade sdbus-c++ 1.1.0 to 1.2.0
sdbus-c++-tools: Upgrade sdbus-c++-tools 1.1.0 to 1.2.0
Sergio Prado (1):
polkit: refresh patch to fix warning
Steffen Olsen (1):
postgreql: Fix pg_config not working after buildpaths patch
Vincent Davis Jr (1):
cglm: New recipe for cglm-0.8.5
Wang Mingyu (16):
abseil-cpp: upgrade 20220623.0 -> 20220623.1
chrony: upgrade 4.2 -> 4.3
ctags: upgrade 5.9.20220821.0 -> 5.9.20220828.0
fio: upgrade 3.31 -> 3.32
libblockdev: upgrade 2.26 -> 2.27
libdev-checklib-perl: upgrade 1.14 -> 1.16
lvm2/libdevmapper: upgrade 2.03.11 -> 2.03.16
libforms: upgrade 1.2.3 -> 1.2.4
python3-astroid: upgrade 2.12.4 -> 2.12.5
python3-colorlog: upgrade 6.6.0 -> 6.7.0
python3-django: upgrade 3.2.12 -> 4.1
python3-google-api-core: upgrade 2.8.2 -> 2.10.0
python3-google-api-python-client: upgrade 2.57.0 -> 2.58.0
python3-grpcio: upgrade 1.48.0 -> 1.48.1
python3-grpcio-tools: upgrade 1.48.0 -> 1.48.1
cli11: upgrade 1.9.1 -> 2.2.0
Xu Huan (5):
python3-greenlet: upgrade 1.1.2 -> 1.1.3
python3-marshmallow: upgrade 3.17.0 -> 3.17.1
python3-pyudev: upgrade 0.23.2 -> 0.24.0
python3-websocket-client: upgrade 1.3.3 -> 1.4.0
python3-xmlschema: upgrade 2.0.2 -> 2.0.3
Yi Zhao (1):
tcpreplay: fix buildpaths issue
Zheng Qiu (2):
jq: add ptest
rsyslog: update 8.2206->8.2208
hongxu (1):
python3-h5py: fix wrong file driver version
wangmy (78):
fuse3: upgrade 3.11.0 -> 3.12.0
xfstests: upgrade 2022.08.07 -> 2022.08.21
gnome-bluetooth: upgrade 42.3 -> 42.4
libadwaita: upgrade 1.1.4 -> 1.1.5
networkmanager-openvpn: upgrade 1.8.18 -> 1.10.0
open-isns: upgrade 0.101 -> 0.102
boost-sml: upgrade 1.1.5 -> 1.1.6
ctags: upgrade 5.9.20220828.0 -> 5.9.20220904.0
hwdata: upgrade 0.361 -> 0.362
modemmanager: upgrade 1.18.10 -> 1.18.12
php: upgrade 8.1.9 -> 8.1.10
poppler: upgrade 22.08.0 -> 22.09.0
syslog-ng: upgrade 3.37.1 -> 3.38.1
libio-socket-ssl-perl: upgrade 2.074 -> 2.075
python3-aiofiles: upgrade 0.8.0 -> 22.1.0
python3-antlr4-runtime: upgrade 4.10 -> 4.11.1
python3-croniter: upgrade 1.3.5 -> 1.3.7
python3-google-api-python-client: upgrade 2.58.0 -> 2.60.0
python3-langtable: upgrade 0.0.58 -> 0.0.59
python3-oauthlib: upgrade 3.2.0 -> 3.2.1
python3-pymetno: upgrade 0.9.0 -> 0.10.0
python3-sqlalchemy: upgrade 1.4.40 -> 1.4.41
python3-twisted: upgrade 22.4.0 -> 22.8.0
python3-websocket-client: upgrade 1.4.0 -> 1.4.1
python3-xmlschema: upgrade 2.0.3 -> 2.0.4
libadwaita: upgrade 1.1.5 -> 1.2.0
bats: upgrade 1.7.0 -> 1.8.0
ctags: upgrade 5.9.20220904.0 -> 5.9.20220911.0
iceauth: upgrade 1.0.8 -> 1.0.9
iwd: upgrade 1.29 -> 1.30
libblockdev: upgrade 2.27 -> 2.28
libjcat: upgrade 0.1.11 -> 0.1.12
libpfm4: upgrade 4.11.0 -> 4.12.0
libxmlb: upgrade 0.3.9 -> 0.3.10
neon: upgrade 0.32.2 -> 0.32.4
setxkbmap: upgrade 1.3.2 -> 1.3.3
xclock: upgrade 1.0.9 -> 1.1.1
xkbutils: upgrade 1.0.4 -> 1.0.5
xlsfonts: upgrade 1.0.6 -> 1.0.7
xmag: upgrade 1.0.6 -> 1.0.7
xwud: upgrade 1.0.5 -> 1.0.6
python3-cachecontrol: upgrade 0.12.11 -> 0.12.12
python3-cantools: upgrade 37.1.2 -> 37.2.0
python3-eth-typing: upgrade 3.1.0 -> 3.2.0
python3-fasteners: upgrade 0.17.3 -> 0.18
python3-flask-socketio: upgrade 5.3.0 -> 5.3.1
python3-google-api-core: upgrade 2.10.0 -> 2.10.1
python3-google-api-python-client: upgrade 2.60.0 -> 2.61.0
python3-grpcio-tools: upgrade 1.48.1 -> 1.49.0
python3-grpcio: upgrade 1.48.1 -> 1.49.0
python3-jsonrpcserver: upgrade 5.0.8 -> 5.0.9
python3-protobuf: upgrade 4.21.5 -> 4.21.6
xfstests: upgrade 2022.08.21 -> 2022.09.04
gnome-font-viewer: upgrade 42.0 -> 43.0
tracker: upgrade 3.3.3 -> 3.4.0
yelp-xsl: upgrade 42.0 -> 42.1
dnsmasq: upgrade 2.86 -> 2.87
unbound: upgrade 1.16.2 -> 1.16.3
cairomm-1.16: upgrade 1.16.1 -> 1.16.2
ctags: upgrade 5.9.20220911.0 -> 5.9.20220925.0
libgee: upgrade 0.20.5 -> 0.20.6
libpeas: upgrade 1.32.0 -> 1.34.0
opencl-headers: upgrade 2022.05.18 -> 2022.09.23
pangomm-2.48: upgrade 2.50.0 -> 2.50.1
thrift: upgrade 0.16.0 -> 0.17.0
zabbix: upgrade 6.2.2 -> 6.2.3
python3-djangorestframework: upgrade 3.13.1 -> 3.14.0
python3-google-api-python-client: upgrade 2.61.0 -> 2.62.0
python3-google-auth: upgrade 2.11.0 -> 2.11.1
python3-grpcio-tools: upgrade 1.49.0 -> 1.49.1
python3-grpcio: upgrade 1.49.0 -> 1.49.1
python3-h11: upgrade 0.13.0 -> 0.14.0
python3-humanize: upgrade 4.3.0 -> 4.4.0
python3-langtable: upgrade 0.0.59 -> 0.0.60
python3-ldap: upgrade 3.4.2 -> 3.4.3
python3-pandas: upgrade 1.4.4 -> 1.5.0
python3-path: upgrade 16.4.0 -> 16.5.0
python3-xmlschema: upgrade 2.0.4 -> 2.1.0
zhengrq.fnst (8):
python3-astroid: upgrade 2.12.2 -> 2.12.4
python3-flatbuffers: upgrade 2.0.6 -> 2.0.7
python3-flask-socketio: upgrade 5.2.0 -> 5.3.0
python3-gnupg: upgrade 0.4.9 -> 0.5.0
python3-natsort: upgrade 8.1.0 -> 8.2.0
python3-sympy: upgrade 1.10.1 -> 1.11.1
python3-pandas: upgrade 1.4.3 -> 1.4.4
python3-parsimonious: upgrade 0.9.0 -> 0.10.0
zhengruoqin (15):
wolfssl: upgrade 5.4.0 -> 5.5.0
ser2net: upgrade 4.3.7 -> 4.3.8
tree: upgrade 2.0.3 -> 2.0.4
xorgxrdp: upgrade 0.2.18 -> 0.9.19
python3-zeroconf: upgrade 0.39.0 -> 0.39.1
smarty: upgrade 4.2.0 -> 4.2.1
python3-pycocotools: upgrade 2.0.4 -> 2.0.5
python3-pyproj: upgrade 3.3.1 -> 3.4.0
python3-pyzmq: upgrade 23.2.1 -> 24.0.0
python3-regex: upgrade 2022.8.17 -> 2022.9.13
python3-pyjwt: upgrade 2.4.0 -> 2.5.0
python3-pyscaffold: upgrade 4.3 -> 4.3.1
python3-pyzmq: upgrade 24.0.0 -> 24.0.1
python3-sqlparse: upgrade 0.4.2 -> 0.4.3
python3-web3: upgrade 5.30.0 -> 5.31.0
meta-security: 10fdc2b13a..824d2762f6:
Armin Kuster (4):
suricata: fix compile issue
cryptmount: fix systemd service install
update sssd to 2.7.4
update chipsec to 1.8.8
poky: 9b1db65e7d..5200799866:
Alejandro Hernandez Samaniego (1):
rootfs.py: dont try to list installed packages for baremetal images
Alexander Kanavin (15):
selftest/cases/bblayers.py: build python3-jsonschema only once
oe-setup-builddir: do not suggest local.conf as a source of examples
init-system-helpers: exclude experimental tags from version check
ref-manual: correct the location of default configuration template
dev-manual: common-tasks.rst: drop the output of 'bitbake-layers --help'
common-tasks.rst: describe the layer setup tooling
dev-manual: common-tasks.rst: describe the newly added layer setup and template config commands
dev-manual: common-tasks.rst: rewrite the section about configuration templates
github-releases: add a class that consolidates version checks
meta: fix version checks in all github recipes using the github-releases class
virglrenderer: use https for fetching from gitlab
local.conf.sample: correct the location of public hashserv
scripts/oe-setup-builddir: do not read TEMPLATECONF from templateconf.cfg
rpm: update 4.18.0-rc1 -> 4.18.0-release
tzdata: update to 2022d
Alexandre Belloni (2):
runqemu: display host uptime when starting
oeqa/runtime/dnf: fix typo
Andrei Gherzan (6):
depmodwrapper-cross: Take into consideration kernel package name
kernel.bbclass: Pass the kernel package name to depmodwrapper
kernel-module-split.bbclass: Pass the kernel package name to depmodwrapper
rootfs.py: Run depmod(wrapper) against each compiled kernel
rootfs.py: Drop FAKEROOT support in exec function
grub: Allow build on armv7ve/a with softfp
Aryaman Gupta (1):
bitbake: doc: bitbake-user-manual: Add definition for BB_PRESSURE_MAX variables
Bob Henz (1):
systemd-systemctl: Fix WantedBy processing
Bruce Ashfield (11):
linux-yocto/5.15: update to v5.15.63
linux-yocto/5.19: update to v5.19.5
linux-yocto/5.19: update to v5.19.7
linux-yocto/5.15: update to v5.15.65
kern-tools: fix queue processing in relative TOPDIR configurations
kern-tools: allow 'y' or 'm' to avoid config audit warnings
linux-yocto/5.19: update to v5.19.9
linux-yocto/5.15: update to v5.15.68
linux-yocto/5.19: cfg: fix ACPI warnings for -tiny
linux-yocto/5.15: cfg: fix ACPI warnings for -tiny
linux-yocto/5.19: fix gcc-11 warning
Changhyeok Bae (2):
iproute2: Unset CLEANBROKEN
iproute2: merge .inc into .bb
Changqing Li (1):
parselogs.py: ignore systemd-logind warning message
Chen Qi (2):
shadow-securetty: allow ttyS4 for amd-snowyowl-64
useradd-example: do not use unsupported clear text password
Daniel Gomez (3):
rootfs-postcommands: Remove dropbear inconsistent comment
gtk-icon-cache: Fix GTKIC_CMD if-else condition
dropbear: Add enable-x11-forwarding PACKAGECONFIG option
Daniel McGregor (2):
coreutils: add openssl PACKAGECONFIG
gcc: set the default target arch
Denys Dmytriyenko (1):
glibc-locale: explicitly remove empty dirs in ${libdir}
Dmitry Baryshkov (2):
linux-firmware: upgrade 20220708 -> 20220913
linux-firmware: package new Qualcomm firmware
Etienne Cordonnier (2):
python3: add PACKAGECONFIG[editline]
opkg: add option for zstd support
Fabio Estevam (1):
README.hardware.md: Fix the tftp example
Florin Diaconescu (1):
expat: upgrade 2.4.8 -> 2.4.9
He Zhe (2):
lttng-tools: Disable on qemuriscv32
lttng-tools: Disable on riscv32
Johan Korsnes (1):
ref-manual: variables: document KERNEL_IMAGETYPES
John Edward Broadbent (1):
externalsrc: git submodule--helper list unsupported
Jose Quaresma (2):
bitbake: lib/bb: warning when the debug message is invalid
bitbake: fetch2/crate fixup c212b0f3 loglevel
Joshua Watt (2):
oeqa: qemurunner: Report UNIX Epoch timestamp on login
bitbake: bitbake: Fix a few more logger debug() calls
Kai Kang (2):
binutils: handle symlink files for gprofng
binutils: another way to clear GPROFNG_ALTS for clang and musl
Khem Raj (20):
autoconf: Update K & R stype functions
webkitgtk: Update to 2.6.37
rust: Use variable to specify extra tools to install
boost: Refrain bjam from poking into host includes
gobject-introspection: Do not hardcode objdump name
binutils-cross-canadian: Do not package gprofng.rc
webkitgtk: Fix build on 32bit arm
python3-lxml: Add recipe
bitbake.conf: Define TC_CXX_RUNTIME
rust: Use libc++ runtime when using clang with llvm runtime
glibc: Upgrade to tip of 2.36 branch
binutils: Ignore CVE-2022-38126 CVE-2022-38127
inetutils: Fix remote DoS vulnerability in inetutils-telnetd
curl: Add missing perl modules in ptest rdepends
elfutils: Enable ptests on musl targets
grub: Apply backports to fix build with clang on x86
apt: Fix type mismatches and ptest builds
linux-yocto: Enable mdio for qemu
gcompat: Add __getauxval wrapper needed on aarch64
ref-manual: Define TC_CXX_RUNTIME
Konrad Weihmann (1):
python3-idna: migrate to flit-core
Kristian Amlie (1):
externalsrc: Don't wipe out src dir when EXPORT_FUNCTIONS is used.
Leon Anavi (1):
python3-manifest.json: Add zoneinfo
Markus Volk (5):
squashfs-tools: build with lzo support
libsdl2: update 2.0.22 -> 2.24.0
libdrm: upgrade 2.4.112 -> 2.4.113
mesa: upgrade 22.1.6 -> 22.2.0
virglrenderer: upgrade 0.9.1 -> 0.10.3
Martin Jansa (3):
webkitgtk: fix gstreamer include paths
libxml2: Port gentest.py to Python-3
create-pull-request: don't switch the git remote protocol to git://
Mattias Jernberg (1):
bitbake: utils: Add enable_loopback_networking()
Michael Opdenacker (8):
bitbake: bitbake-user-manual: mention pydevshell in OE
dev-manual: common-tasks.rst: refer to Python functions in BitBake manual
ref-manual: features.rst: add missing default distro features
ref-manual: variables.rst: remove BBPATH
ref-manual: structure.rst: add reference to the contents of the build directory
ref-manual: structure.rst: improve information about build/cache/
ref-manual: variables.rst: correct templateconf.cfg file name
ref-manual: structure.rst: add more subsection levels
Mikko Rapeli (7):
u-boot: switch from append to += in SRC_URI
glibc-tests: use += instead of :append
go-native: switch from SRC_URI:append to SRC_URI +=
python3-rfc3986-validator: switch from SRC_URI:append to SRC_URI +=
linux-libc-headers: switch from SRC_URI:append to SRC_URI +=
common-tasks.rst: remove SRC_URI:append from examples
kernel-dev/common.rst: remove SRC_URI:append from examples
Mingli Yu (1):
busybox: add devmem 128-bit support
Otavio Salvador (2):
bitbake: toaster: fix kirkstone version
rust-hello-world: move to recipes-extended
Pascal Bach (1):
bitbake: fetch2/ssh.py: fix checkstatus
Paulo Neves (2):
watchdog: Remove unneeded tirpc dependency
bitbake: fetch2: Remove unneeded conditional
Pavel Zhukov (1):
core-image.bbclass: Exclude openssh complementary packages
Peter Bergin (1):
rootfs-postcommands.bbclass: avoid moving ssh host keys if etc is writable
Peter Kjellerstedt (6):
cairo: Adapt the license information based on what is being built
oe-setup-builddir: Correct when validation of the templates dir is run
oe-setup-builddir: Simplify error handling
oe-setup-builddir: Avoid shellcheck warnings
oe-setup-builddir: Keep templateconf.cfg relative if $TEMPLATECONF is
oe-setup-builddir: Always update templateconf.cfg
Petr Vorel (1):
ltp: Update list of tests not buildable on musl
Richard Purdie (54):
bitbake: wget: Avoid bad checksum race issues
bitbake: asyncrpc/client: Fix unix domain socket chdir race issues
build-appliance-image: Update to master head revision
sstate: Fix sstate file mirroring checksum issue
bitbake: fetch2: Ensure mirror tarballs don't enforce checksum
qemu: Upgrade 7.0.0 -> 7.1.0
qemurunner: Update to match qmp changes
build-appliance-image: Update to master head revision
vim: Upgrade 9.0.0341 -> 9.0.0453
selftest/qemurunner: Work around possible control character contamination
oetest: Drop unused variable
oetest: Drop getResults usage from oeRuntimeTest
oeqa/utils/decorators: Drop unused decorators
oeqa/utils/decorators: Drop getResults
autoconf-archive: upgrade 2022.02.11 -> 2022.09.03
ofono: upgrade 1.34 -> 2.0
ccache: upgrade 4.6.2 -> 4.6.3
btrfs-tools: upgrade 5.19 -> 5.19.1
dnf: upgrade 4.13.0 -> 4.14.0
git: upgrade 2.37.2 -> 2.37.3
ell: upgrade 0.52 -> 0.53
file: upgrade 5.42 -> 5.43
ninja: upgrade 1.11.0 -> 1.11.1
libcomps: upgrade 0.1.18 -> 0.1.19
python3-hatchling: upgrade 1.8.1 -> 1.9.0
meson: upgrade 0.63.1 -> 0.63.2
python3-idna: upgrade 3.3 -> 3.4
librepo: upgrade 1.14.4 -> 1.14.5
python3-hypothesis: upgrade 6.46.11 -> 6.54.5
python3-numpy: upgrade 1.23.2 -> 1.23.3
libdnf: upgrade 0.68.0 -> 0.69.0
python3-psutil: upgrade 5.9.1 -> 5.9.2
ffmpeg: upgrade 5.1 -> 5.1.1
repo: upgrade 2.29.1 -> 2.29.2
nghttp2: upgrade 1.48.0 -> 1.49.0
libjitterentropy: upgrade 3.4.0 -> 3.4.1
sqlite3: upgrade 3.39.2 -> 3.39.3
diffoscope: upgrade 220 -> 221
python3-certifi: upgrade 2022.6.15 -> 2022.9.14
libpng: upgrade 1.6.37 -> 1.6.38
numactl: upgrade 2.0.14 -> 2.0.15
rpm: Upgrade 4.17.1 -> 4.18rc1
perf: Fix for recent kernel upgrades
oeqa/runtime/virgl: Update test to match new mesa version
vim: Upgrade 9.0.453 -> 9.0.541
vim: Upgrade 9.0.0541 -> 9.0.0598
qemu: Add patch to address arm qemu upgrade issues
layer.conf: Update to use langdale as the core layer name
poky: Update to 4.1 version
poky: Update to match poky version numbers
bitbake: bitbake: Bump to version 2.2.0
build-appliance-image: Update to master head revision
go: Fix reproducibility failures
build-appliance-image: Update to master head revision
Robert Joslyn (6):
xorg-lib-common: Add variable to set tarball type
libxfont2: Update 2.0.5 to 2.0.6
libxau: Update 1.0.9 to 1.0.10
libfontenc: Update 1.1.4 to 1.1.6
flac: Update 1.3.4 to 1.4.0
tzdata: Update from 2022b to 2022c
Ross Burton (16):
meta-selftest/poison: improve sysroot poisoning test case
gcc-cross: pass -Werror=poison-system-directories to compiler stages
gcc: remove obsolete 0012-export-CPP.patch
xmlto: remove redundant patches
tiff: backport fix for CVE-2022-2953
gcc: remove obsolete poisoned calloc workaround
gcc: remove obsolete MinGW patch
oeqa/selftest/debuginfod: don't re-use the database
libgcrypt: disable bench-slope test case
libxml2: don't override XML_CATALOG_FILES in xmllint wrapper if already set
glibc: mark a CVE where we have merged the fix
qemu: re-add the fix for CVE-2022-1050
qemu: fix CVE-2022-2962
dnf: add dummy packages for testing
oeqa/runtime/dnf: use dnf-test packages
Revert "wic/plugins/images/direct: Allow changes in fstab on rootfs"
Ruiqiang Hao (1):
tune-neoversen2: support tune-neoversen2 base on armv9a
Samuli Piippo (2):
Revert "gcc-cross-canadian: Add symlink to real-ld alongside other symlinks"
gcc-cross-canadian: add default plugin linker
Stefano Babic (1):
libubootenv: upgrade 0.3.2 -> 0.3.3
Sundeep KOKKONDA (1):
rust-cross-canadian: Fix for the issue caused by using sdk shell
Teoh Jay Shen (1):
bind: upgrade 9.18.6 -> 9.18.7
Tom Hochstein (2):
cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDK
connman: Drop redundant nfsroot handling
Ulrich Ölmann (5):
icecc.bbclass: fix typos
icecc.bbclass: delete 'rm' command
manuals: fix paths to default templates & clean up whitespaces
icecc.bbclass: fix filename of recipe in comment
manuals: fix typos in the context of 'icecc' & clean up whitespaces
Vyacheslav Yurkov (5):
oeqa/selftest: drop image_feature test from overlayfs
classes: Update overlayfs classes to use new bitbake functionality
files: overlayfs-etc: refactor preinit template
classes: files: Extend overlayfs-etc class
oeqa/selftest: Add lower layer test for overlayfs-etc
niko.mauno@vaisala.com (2):
systemd: Add 'no-dns-fallback' PACKAGECONFIG option
systemd: Fix unwritable /var/lock when no sysvinit handling
pgowda (4):
rust: Add linker configurations for cross compilation
rust: Enable verbose-tests to get the test results in readable format
binutils : CVE-2022-38533
binutils : Fix CVE-2022-38128
wangmy (9):
cracklib: upgrade 2.9.7 -> 2.9.8
kmscube: upgrade to latest revision
piglit: upgrade to latest revision
python3-dtschema: upgrade 2022.8.1 -> 2022.8.3
python3-mako: upgrade 1.2.1 -> 1.2.2
python3-pathspec: upgrade 0.9.0 -> 0.10.1
python3-pytest: upgrade 7.1.2 -> 7.1.3
vala: upgrade 0.56.2 -> 0.56.3
less: upgrade 600 -> 608
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I1705b78d8a5ef5762fe770a69ed9b866fac52ccf
Diffstat (limited to 'poky/meta/recipes-devtools/binutils')
7 files changed, 1047 insertions, 3 deletions
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.39.inc b/poky/meta/recipes-devtools/binutils/binutils-2.39.inc index 89612a3eae..b040e57037 100644 --- a/poky/meta/recipes-devtools/binutils/binutils-2.39.inc +++ b/poky/meta/recipes-devtools/binutils/binutils-2.39.inc @@ -31,5 +31,13 @@ SRC_URI = "\ file://0010-sync-with-OE-libtool-changes.patch \ file://0011-Check-for-clang-before-checking-gcc-version.patch \ file://0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \ + file://0013-CVE-2022-38533.patch \ + file://0014-CVE-2022-38128-1.patch \ + file://0014-CVE-2022-38128-2.patch \ + file://0014-CVE-2022-38128-3.patch \ " S = "${WORKDIR}/git" +# Already in 2.39 branch +# - https://sourceware.org/bugzilla/show_bug.cgi?id=29289 +# - https://sourceware.org/bugzilla/show_bug.cgi?id=29290 +CVE_CHECK_IGNORE += "CVE-2022-38126 CVE-2022-38127" diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc index 4e8f10c1c4..12e7d77d8d 100644 --- a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc +++ b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc @@ -23,10 +23,10 @@ do_install () { rm -f ${D}${libdir}/libiberty* rm -f ${D}${libdir}/libopcodes* rm -f ${D}${includedir}/*.h - + rm -f ${D}${sysconfdir}/gprofng.rc + rmdir ${D}${sysconfdir} || : + cross_canadian_bindirlinks } -FILES:${PN} += "${sysconfdir}/gprofng.rc" - BBCLASSEXTEND = "" diff --git a/poky/meta/recipes-devtools/binutils/binutils.inc b/poky/meta/recipes-devtools/binutils/binutils.inc index 789c8bec21..98acf0a222 100644 --- a/poky/meta/recipes-devtools/binutils/binutils.inc +++ b/poky/meta/recipes-devtools/binutils/binutils.inc @@ -36,6 +36,24 @@ FILES:${PN}-dev = " \ # Rather than duplicating multiple entries for these, make one # list and reuse it. +GPROFNGS = " \ + gp-archive \ + gp-collect-app \ + gp-display-html \ + gp-display-src \ + gp-display-text \ + gprofng \ +" + +# it disables gprofng for clang and musl in the bb file +GPROFNGS:toolchain-clang = "" +GPROFNGS:libc-musl = "" + +GPROFNG_ALTS ?= "" +GPROFNG_ALTS:x86 = "${GPROFNGS}" +GPROFNG_ALTS:x86-64 = "${GPROFNGS}" +GPROFNG_ALTS:aarch64 = "${GPROFNGS}" + LDGOLD_ALTS ?= "ld.gold dwp" LDGOLD_ALTS:riscv64 = "" LDGOLD_ALTS:riscv32 = "" @@ -48,6 +66,7 @@ USE_ALTERNATIVES_FOR = " \ c++filt \ elfedit \ gprof \ + ${GPROFNG_ALTS} \ ld \ ld.bfd \ ${LDGOLD_ALTS} \ diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch new file mode 100644 index 0000000000..5d9ac2cb1f --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch @@ -0,0 +1,36 @@ +From ef186fe54aa6d281a3ff8a9528417e5cc614c797 Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Sat, 13 Aug 2022 15:32:47 +0930 +Subject: [PATCH] PR29482 - strip: heap-buffer-overflow + + PR 29482 + * coffcode.h (coff_set_section_contents): Sanity check _LIB. + +Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ef186fe54aa6d281a3ff8a9528417e5cc614c797] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> + +--- + bfd/coffcode.h | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/bfd/coffcode.h b/bfd/coffcode.h +index 67aaf158ca1..52027981c3f 100644 +--- a/bfd/coffcode.h ++++ b/bfd/coffcode.h +@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd, + + rec = (bfd_byte *) location; + recend = rec + count; +- while (rec < recend) ++ while (recend - rec >= 4) + { ++ size_t len = bfd_get_32 (abfd, rec); ++ if (len == 0 || len > (size_t) (recend - rec) / 4) ++ break; ++ rec += len * 4; + ++section->lma; +- rec += bfd_get_32 (abfd, rec) * 4; + } + + BFD_ASSERT (rec == recend); diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch new file mode 100644 index 0000000000..0a490d86b3 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch @@ -0,0 +1,350 @@ +From f07c08e115e27cddf5a0030dc6332bbee1bd9c6a Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Thu, 21 Jul 2022 08:38:14 +0930 +Subject: [PATCH] binutils/dwarf.c: abbrev caching + +I'm inclined to think that abbrev caching is counter-productive. The +time taken to search the list of abbrevs converted to internal form is +non-zero, and it's easy to decode the raw abbrevs. It's especially +silly to cache empty lists of decoded abbrevs (happens with zero +padding in .debug_abbrev), or abbrevs as they are displayed when there +is no further use of those abbrevs. This patch stops caching in those +cases. + + * dwarf.c (record_abbrev_list_for_cu): Add free_list param. + Put abbrevs on abbrev_lists here. + (new_abbrev_list): Delete function. + (process_abbrev_set): Return newly allocated list. Move + abbrev base, offset and size checking to.. + (find_and_process_abbrev_set): ..here, new function. Handle + lookup of cached abbrevs here, and calculate start and end + for process_abbrev_set. Return free_list if newly alloc'd. + (process_debug_info): Consolidate cached list lookup, new list + alloc and processing into find_and_process_abbrev_set call. + Free list when not cached. + (display_debug_abbrev): Similarly. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f07c08e115e27cddf5a0030dc6332bbee1bd9c6a] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> +--- + binutils/dwarf.c | 208 +++++++++++++++++++++++++---------------------- + 1 file changed, 110 insertions(+), 98 deletions(-) + +diff --git a/binutils/dwarf.c b/binutils/dwarf.c +index 267ed3bb382..2fc352f74c5 100644 +--- a/binutils/dwarf.c ++++ b/binutils/dwarf.c +@@ -882,8 +882,15 @@ static unsigned long next_free_abbrev_m + #define ABBREV_MAP_ENTRIES_INCREMENT 8 + + static void +-record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end, abbrev_list * list) ++record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end, ++ abbrev_list *list, abbrev_list *free_list) + { ++ if (free_list != NULL) ++ { ++ list->next = abbrev_lists; ++ abbrev_lists = list; ++ } ++ + if (cu_abbrev_map == NULL) + { + num_abbrev_map_entries = INITIAL_NUM_ABBREV_MAP_ENTRIES; +@@ -936,20 +943,6 @@ free_all_abbrevs (void) + } + + static abbrev_list * +-new_abbrev_list (dwarf_vma abbrev_base, dwarf_vma abbrev_offset) +-{ +- abbrev_list * list = (abbrev_list *) xcalloc (sizeof * list, 1); +- +- list->abbrev_base = abbrev_base; +- list->abbrev_offset = abbrev_offset; +- +- list->next = abbrev_lists; +- abbrev_lists = list; +- +- return list; +-} +- +-static abbrev_list * + find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base, + dwarf_vma abbrev_offset) + { +@@ -966,7 +959,7 @@ find_abbrev_list_by_abbrev_offset (dwarf + /* Find the abbreviation map for the CU that includes OFFSET. + OFFSET is an absolute offset from the start of the .debug_info section. */ + /* FIXME: This function is going to slow down readelf & objdump. +- Consider using a better algorithm to mitigate this effect. */ ++ Not caching abbrevs is likely the answer. */ + + static abbrev_map * + find_abbrev_map_by_offset (dwarf_vma offset) +@@ -1033,40 +1026,18 @@ add_abbrev_attr (unsigned long attrib + list->last_abbrev->last_attr = attr; + } + +-/* Processes the (partial) contents of a .debug_abbrev section. +- Returns NULL if the end of the section was encountered. +- Returns the address after the last byte read if the end of +- an abbreviation set was found. */ ++/* Return processed (partial) contents of a .debug_abbrev section. ++ Returns NULL on errors. */ + +-static unsigned char * ++static abbrev_list * + process_abbrev_set (struct dwarf_section *section, +- dwarf_vma abbrev_base, +- dwarf_vma abbrev_size, +- dwarf_vma abbrev_offset, +- abbrev_list *list) ++ unsigned char *start, ++ unsigned char *end) + { +- if (abbrev_base >= section->size +- || abbrev_size > section->size - abbrev_base) +- { +- /* PR 17531: file:4bcd9ce9. */ +- warn (_("Debug info is corrupted, abbrev size (%lx) is larger than " +- "abbrev section size (%lx)\n"), +- (unsigned long) (abbrev_base + abbrev_size), +- (unsigned long) section->size); +- return NULL; +- } +- if (abbrev_offset >= abbrev_size) +- { +- warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than " +- "abbrev section size (%lx)\n"), +- (unsigned long) abbrev_offset, +- (unsigned long) abbrev_size); +- return NULL; +- } ++ abbrev_list *list = xmalloc (sizeof (*list)); ++ list->first_abbrev = NULL; ++ list->last_abbrev = NULL; + +- unsigned char *start = section->start + abbrev_base; +- unsigned char *end = start + abbrev_size; +- start += abbrev_offset; + while (start < end) + { + unsigned long entry; +@@ -1079,14 +1050,18 @@ process_abbrev_set (struct dwarf_section + /* A single zero is supposed to end the set according + to the standard. If there's more, then signal that to + the caller. */ +- if (start == end) +- return NULL; +- if (entry == 0) +- return start; ++ if (start == end || entry == 0) ++ { ++ list->start_of_next_abbrevs = start != end ? start : NULL; ++ return list; ++ } + + READ_ULEB (tag, start, end); + if (start == end) +- return NULL; ++ { ++ free (list); ++ return NULL; ++ } + + children = *start++; + +@@ -1121,9 +1096,67 @@ process_abbrev_set (struct dwarf_section + /* Report the missing single zero which ends the section. */ + error (_(".debug_abbrev section not zero terminated\n")); + ++ free (list); + return NULL; + } + ++/* Return a sequence of abbrevs in SECTION starting at ABBREV_BASE ++ plus ABBREV_OFFSET and finishing at ABBREV_BASE + ABBREV_SIZE. ++ If FREE_LIST is non-NULL search the already decoded abbrevs on ++ abbrev_lists first and if found set *FREE_LIST to NULL. If ++ searching doesn't find a matching abbrev, set *FREE_LIST to the ++ newly allocated list. If FREE_LIST is NULL, no search is done and ++ the returned abbrev_list is always newly allocated. */ ++ ++static abbrev_list * ++find_and_process_abbrev_set (struct dwarf_section *section, ++ dwarf_vma abbrev_base, ++ dwarf_vma abbrev_size, ++ dwarf_vma abbrev_offset, ++ abbrev_list **free_list) ++{ ++ if (free_list) ++ *free_list = NULL; ++ ++ if (abbrev_base >= section->size ++ || abbrev_size > section->size - abbrev_base) ++ { ++ /* PR 17531: file:4bcd9ce9. */ ++ warn (_("Debug info is corrupted, abbrev size (%lx) is larger than " ++ "abbrev section size (%lx)\n"), ++ (unsigned long) (abbrev_base + abbrev_size), ++ (unsigned long) section->size); ++ return NULL; ++ } ++ if (abbrev_offset >= abbrev_size) ++ { ++ warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than " ++ "abbrev section size (%lx)\n"), ++ (unsigned long) abbrev_offset, ++ (unsigned long) abbrev_size); ++ return NULL; ++ } ++ ++ unsigned char *start = section->start + abbrev_base + abbrev_offset; ++ unsigned char *end = section->start + abbrev_base + abbrev_size; ++ abbrev_list *list = NULL; ++ if (free_list) ++ list = find_abbrev_list_by_abbrev_offset (abbrev_base, abbrev_offset); ++ if (list == NULL) ++ { ++ list = process_abbrev_set (section, start, end); ++ if (list) ++ { ++ list->abbrev_base = abbrev_base; ++ list->abbrev_offset = abbrev_offset; ++ list->next = NULL; ++ } ++ if (free_list) ++ *free_list = list; ++ } ++ return list; ++} ++ + static const char * + get_TAG_name (unsigned long tag) + { +@@ -3670,7 +3703,6 @@ process_debug_info (struct dwarf_section + dwarf_vma cu_offset; + unsigned int offset_size; + struct cu_tu_set * this_set; +- abbrev_list * list; + unsigned char *end_cu; + + hdrptr = start; +@@ -3726,22 +3758,18 @@ process_debug_info (struct dwarf_section + abbrev_size = this_set->section_sizes [DW_SECT_ABBREV]; + } + +- list = find_abbrev_list_by_abbrev_offset (abbrev_base, +- compunit.cu_abbrev_offset); +- if (list == NULL) +- { +- unsigned char * next; +- +- list = new_abbrev_list (abbrev_base, +- compunit.cu_abbrev_offset); +- next = process_abbrev_set (&debug_displays[abbrev_sec].section, +- abbrev_base, abbrev_size, +- compunit.cu_abbrev_offset, list); +- list->start_of_next_abbrevs = next; +- } +- ++ abbrev_list *list; ++ abbrev_list *free_list; ++ list = find_and_process_abbrev_set (&debug_displays[abbrev_sec].section, ++ abbrev_base, abbrev_size, ++ compunit.cu_abbrev_offset, ++ &free_list); + start = end_cu; +- record_abbrev_list_for_cu (cu_offset, start - section_begin, list); ++ if (list != NULL && list->first_abbrev != NULL) ++ record_abbrev_list_for_cu (cu_offset, start - section_begin, ++ list, free_list); ++ else if (free_list != NULL) ++ free_abbrev_list (free_list); + } + + for (start = section_begin, unit = 0; start < end; unit++) +@@ -3757,7 +3785,6 @@ process_debug_info (struct dwarf_section + struct cu_tu_set *this_set; + dwarf_vma abbrev_base; + size_t abbrev_size; +- abbrev_list * list = NULL; + unsigned char *end_cu; + + hdrptr = start; +@@ -3936,20 +3963,10 @@ process_debug_info (struct dwarf_section + } + + /* Process the abbrevs used by this compilation unit. */ +- list = find_abbrev_list_by_abbrev_offset (abbrev_base, +- compunit.cu_abbrev_offset); +- if (list == NULL) +- { +- unsigned char *next; +- +- list = new_abbrev_list (abbrev_base, +- compunit.cu_abbrev_offset); +- next = process_abbrev_set (&debug_displays[abbrev_sec].section, +- abbrev_base, abbrev_size, +- compunit.cu_abbrev_offset, list); +- list->start_of_next_abbrevs = next; +- } +- ++ abbrev_list *list; ++ list = find_and_process_abbrev_set (&debug_displays[abbrev_sec].section, ++ abbrev_base, abbrev_size, ++ compunit.cu_abbrev_offset, NULL); + level = 0; + last_level = level; + saved_level = -1; +@@ -4128,6 +4145,8 @@ process_debug_info (struct dwarf_section + if (entry->children) + ++level; + } ++ if (list != NULL) ++ free_abbrev_list (list); + } + + /* Set num_debug_info_entries here so that it can be used to check if +@@ -6353,24 +6372,15 @@ display_debug_abbrev (struct dwarf_secti + + do + { +- abbrev_list * list; +- dwarf_vma offset; +- +- offset = start - section->start; +- list = find_abbrev_list_by_abbrev_offset (0, offset); ++ dwarf_vma offset = start - section->start; ++ abbrev_list *list = find_and_process_abbrev_set (section, 0, ++ section->size, offset, ++ NULL); + if (list == NULL) +- { +- list = new_abbrev_list (0, offset); +- start = process_abbrev_set (section, 0, section->size, offset, list); +- list->start_of_next_abbrevs = start; +- } +- else +- start = list->start_of_next_abbrevs; +- +- if (list->first_abbrev == NULL) +- continue; ++ break; + +- printf (_(" Number TAG (0x%lx)\n"), (long) offset); ++ if (list->first_abbrev) ++ printf (_(" Number TAG (0x%lx)\n"), (long) offset); + + for (entry = list->first_abbrev; entry; entry = entry->next) + { +@@ -6391,6 +6401,8 @@ display_debug_abbrev (struct dwarf_secti + putchar ('\n'); + } + } ++ start = list->start_of_next_abbrevs; ++ free_abbrev_list (list); + } + while (start); + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch new file mode 100644 index 0000000000..e30b4d86e1 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch @@ -0,0 +1,536 @@ +From 175b91507b83ad42607d2f6dadaf55b7b511bdbe Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Wed, 20 Jul 2022 18:28:50 +0930 +Subject: [PATCH] miscellaneous dwarf.c tidies + + * dwarf.c: Leading and trailing whitespace fixes. + (free_abbrev_list): New function. + (free_all_abbrevs): Use the above. Free cu_abbrev_map here too. + (process_abbrev_set): Print actual section name on error. + (get_type_abbrev_from_form): Add overflow check. + (free_debug_memory): Don't free cu_abbrev_map here.. + (process_debug_info): ..or here. Warn on another case of not + finding a neeeded abbrev. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=175b91507b83ad42607d2f6dadaf55b7b511bdbe] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> +--- + binutils/dwarf.c | 216 +++++++++++++++++++++++------------------------ + 1 file changed, 106 insertions(+), 110 deletions(-) + +diff --git a/binutils/dwarf.c b/binutils/dwarf.c +index 2b1eec49422..267ed3bb382 100644 +--- a/binutils/dwarf.c ++++ b/binutils/dwarf.c +@@ -806,7 +806,7 @@ fetch_indexed_value (dwarf_vma idx, + pointer_size = 4; + bias = 12; + } +- ++ + dwarf_vma offset = idx * pointer_size; + + /* Offsets are biased by the size of the section header +@@ -908,38 +908,41 @@ record_abbrev_list_for_cu (dwarf_vma sta + next_free_abbrev_map_entry ++; + } + +-static void +-free_all_abbrevs (void) ++static abbrev_list * ++free_abbrev_list (abbrev_list *list) + { +- abbrev_list * list; ++ abbrev_entry *abbrv = list->first_abbrev; + +- for (list = abbrev_lists; list != NULL;) ++ while (abbrv) + { +- abbrev_list * next = list->next; +- abbrev_entry * abbrv; ++ abbrev_attr *attr = abbrv->first_attr; + +- for (abbrv = list->first_abbrev; abbrv != NULL;) ++ while (attr) + { +- abbrev_entry * next_abbrev = abbrv->next; +- abbrev_attr * attr; +- +- for (attr = abbrv->first_attr; attr;) +- { +- abbrev_attr *next_attr = attr->next; +- +- free (attr); +- attr = next_attr; +- } +- +- free (abbrv); +- abbrv = next_abbrev; ++ abbrev_attr *next_attr = attr->next; ++ free (attr); ++ attr = next_attr; + } + +- free (list); +- list = next; ++ abbrev_entry *next_abbrev = abbrv->next; ++ free (abbrv); ++ abbrv = next_abbrev; + } + +- abbrev_lists = NULL; ++ abbrev_list *next = list->next; ++ free (list); ++ return next; ++} ++ ++static void ++free_all_abbrevs (void) ++{ ++ while (abbrev_lists) ++ abbrev_lists = free_abbrev_list (abbrev_lists); ++ ++ free (cu_abbrev_map); ++ cu_abbrev_map = NULL; ++ next_free_abbrev_map_entry = 0; + } + + static abbrev_list * +@@ -971,7 +974,7 @@ find_abbrev_map_by_offset (dwarf_vma off + && cu_abbrev_map[i].end > offset) + return cu_abbrev_map + i; + +- return NULL; ++ return NULL; + } + + static void +@@ -1094,7 +1097,7 @@ process_abbrev_set (struct dwarf_section + } + + /* Report the missing single zero which ends the section. */ +- error (_(".debug_abbrev section not zero terminated\n")); ++ error (_("%s section not zero terminated\n"), section->name); + + free (list); + return NULL; +@@ -1875,7 +1878,7 @@ fetch_alt_indirect_string (dwarf_vma off + dwarf_vmatoa ("x", offset)); + return _("<offset is too big>"); + } +- ++ + static const char * + get_AT_name (unsigned long attribute) + { +@@ -2157,7 +2160,8 @@ get_type_abbrev_from_form (unsigned long + case DW_FORM_ref4: + case DW_FORM_ref8: + case DW_FORM_ref_udata: +- if (uvalue + cu_offset > (size_t) (cu_end - section->start)) ++ if (uvalue + cu_offset < uvalue ++ || uvalue + cu_offset > (size_t) (cu_end - section->start)) + { + warn (_("Unable to resolve ref form: uvalue %lx + cu_offset %lx > CU size %lx\n"), + uvalue, (long) cu_offset, (long) (cu_end - section->start)); +@@ -2194,7 +2198,7 @@ get_type_abbrev_from_form (unsigned long + else + *map_return = NULL; + } +- ++ + READ_ULEB (abbrev_number, data, section->start + section->size); + + for (entry = map->list->first_abbrev; entry != NULL; entry = entry->next) +@@ -2783,10 +2787,10 @@ read_and_display_attr_value (unsigned lo + if (form == DW_FORM_loclistx) + { + if (dwo) +- { +- index = fetch_indexed_value (uvalue, loclists_dwo, 0); +- index += (offset_size == 8) ? 20 : 12; +- } ++ { ++ index = fetch_indexed_value (uvalue, loclists_dwo, 0); ++ index += (offset_size == 8) ? 20 : 12; ++ } + else if (debug_info_p == NULL) + { + index = fetch_indexed_value (uvalue, loclists, 0); +@@ -2804,21 +2808,21 @@ read_and_display_attr_value (unsigned lo + else if (form == DW_FORM_rnglistx) + { + if (dwo) +- { +- index = fetch_indexed_value (uvalue, rnglists_dwo, 0); +- index += (offset_size == 8) ? 20 : 12; +- } ++ { ++ index = fetch_indexed_value (uvalue, rnglists_dwo, 0); ++ index += (offset_size == 8) ? 20 : 12; ++ } + else +- { +- if (debug_info_p == NULL) +- base = 0; +- else +- base = debug_info_p->rnglists_base; +- /* We do not have a cached value this time, so we perform the +- computation manually. */ +- index = fetch_indexed_value (uvalue, rnglists, base); +- index += base; +- } ++ { ++ if (debug_info_p == NULL) ++ base = 0; ++ else ++ base = debug_info_p->rnglists_base; ++ /* We do not have a cached value this time, so we perform the ++ computation manually. */ ++ index = fetch_indexed_value (uvalue, rnglists, base); ++ index += base; ++ } + } + else + { +@@ -2844,7 +2848,7 @@ read_and_display_attr_value (unsigned lo + if (!do_loc) + printf ("%c<0x%s>", delimiter, dwarf_vmatoa ("x", uvalue + cu_offset)); + break; +- ++ + default: + warn (_("Unrecognized form: 0x%lx\n"), form); + /* What to do? Consume a byte maybe? */ +@@ -2869,9 +2873,9 @@ read_and_display_attr_value (unsigned lo + case DW_AT_rnglists_base: + if (debug_info_p->rnglists_base) + warn (_("CU @ 0x%s has multiple rnglists_base values (0x%s and 0x%s)"), +- dwarf_vmatoa ("x", debug_info_p->cu_offset), +- dwarf_vmatoa ("x", debug_info_p->rnglists_base), +- dwarf_vmatoa ("x", uvalue)); ++ dwarf_vmatoa ("x", debug_info_p->cu_offset), ++ dwarf_vmatoa ("x", debug_info_p->rnglists_base), ++ dwarf_vmatoa ("x", uvalue)); + debug_info_p->rnglists_base = uvalue; + break; + case DW_AT_str_offsets_base: +@@ -3021,7 +3025,7 @@ read_and_display_attr_value (unsigned lo + case DW_FORM_strx3: + case DW_FORM_strx4: + add_dwo_name (fetch_indexed_string (uvalue, this_set, offset_size, false, +- debug_info_p->str_offsets_base), ++ debug_info_p->str_offsets_base), + cu_offset); + break; + case DW_FORM_string: +@@ -3055,7 +3059,7 @@ read_and_display_attr_value (unsigned lo + case DW_FORM_strx3: + case DW_FORM_strx4: + add_dwo_dir (fetch_indexed_string (uvalue, this_set, offset_size, false, +- debug_info_p->str_offsets_base), ++ debug_info_p->str_offsets_base), + cu_offset); + break; + case DW_FORM_string: +@@ -3686,11 +3690,8 @@ process_debug_info (struct dwarf_section + introduce (section, false); + + free_all_abbrevs (); +- free (cu_abbrev_map); +- cu_abbrev_map = NULL; +- next_free_abbrev_map_entry = 0; + +- /* In order to be able to resolve DW_FORM_ref_attr forms we need ++ /* In order to be able to resolve DW_FORM_ref_addr forms we need + to load *all* of the abbrevs for all CUs in this .debug_info + section. This does effectively mean that we (partially) read + every CU header twice. */ +@@ -4045,12 +4046,11 @@ process_debug_info (struct dwarf_section + + /* Scan through the abbreviation list until we reach the + correct entry. */ +- if (list == NULL) +- continue; +- +- for (entry = list->first_abbrev; entry != NULL; entry = entry->next) +- if (entry->number == abbrev_number) +- break; ++ entry = NULL; ++ if (list != NULL) ++ for (entry = list->first_abbrev; entry != NULL; entry = entry->next) ++ if (entry->number == abbrev_number) ++ break; + + if (entry == NULL) + { +@@ -4074,7 +4074,7 @@ process_debug_info (struct dwarf_section + break; + case DW_TAG_compile_unit: + case DW_TAG_skeleton_unit: +- need_base_address = 1; ++ need_base_address = 1; + need_dwo_info = do_loc; + break; + case DW_TAG_entry_point: +@@ -4459,7 +4459,7 @@ display_debug_sup (struct dwarf_section + + SAFE_BYTE_GET_AND_INC (is_supplementary, start, 1, end); + if (is_supplementary != 0 && is_supplementary != 1) +- warn (_("corrupt .debug_sup section: is_supplementary not 0 or 1\n")); ++ warn (_("corrupt .debug_sup section: is_supplementary not 0 or 1\n")); + + sup_filename = start; + if (is_supplementary && sup_filename[0] != 0) +@@ -5638,7 +5638,7 @@ display_debug_lines_decoded (struct dwar + printf ("%s %11d %#18" DWARF_VMA_FMT "x", + newFileName, state_machine_regs.line, + state_machine_regs.address); +- } ++ } + else + { + if (xop == -DW_LNE_end_sequence) +@@ -6092,7 +6092,7 @@ display_debug_macro (struct dwarf_sectio + load_debug_section_with_follow (str, file); + load_debug_section_with_follow (line, file); + load_debug_section_with_follow (str_index, file); +- ++ + introduce (section, false); + + while (curr < end) +@@ -6537,7 +6537,7 @@ display_loc_list (struct dwarf_section * + + /* Check base address specifiers. */ + if (is_max_address (begin, pointer_size) +- && !is_max_address (end, pointer_size)) ++ && !is_max_address (end, pointer_size)) + { + base_address = end; + print_dwarf_vma (begin, pointer_size); +@@ -6715,7 +6715,7 @@ display_loclists_list (struct dwarf_sect + case DW_LLE_default_location: + begin = end = 0; + break; +- ++ + case DW_LLE_offset_pair: + READ_ULEB (begin, start, section_end); + begin += base_address; +@@ -7011,7 +7011,7 @@ display_offset_entry_loclists (struct dw + unsigned char * start = section->start; + unsigned char * const end = start + section->size; + +- introduce (section, false); ++ introduce (section, false); + + do + { +@@ -7060,14 +7060,14 @@ display_offset_entry_loclists (struct dw + section->name, segment_selector_size); + return 0; + } +- ++ + if (offset_entry_count == 0) + { + warn (_("The %s section contains a table without offset\n"), + section->name); + return 0; + } +- ++ + printf (_("\n Offset Entries starting at 0x%lx:\n"), + (long)(start - section->start)); + +@@ -8229,7 +8229,7 @@ display_debug_rnglists (struct dwarf_sec + start = display_debug_rnglists_list + (start, end, address_size, offset, 0, offset_size); + if (start >= end) +- break; ++ break; + } + + start = end; +@@ -8347,12 +8347,12 @@ display_debug_ranges (struct dwarf_secti + next = section_begin + offset + debug_info_p->rnglists_base; + + /* If multiple DWARF entities reference the same range then we will +- have multiple entries in the `range_entries' list for the same +- offset. Thanks to the sort above these will all be consecutive in +- the `range_entries' list, so we can easily ignore duplicates +- here. */ ++ have multiple entries in the `range_entries' list for the same ++ offset. Thanks to the sort above these will all be consecutive in ++ the `range_entries' list, so we can easily ignore duplicates ++ here. */ + if (i > 0 && last_offset == offset) +- continue; ++ continue; + last_offset = offset; + + if (dwarf_check != 0 && i > 0) +@@ -10286,7 +10286,7 @@ display_debug_names (struct dwarf_sectio + printf (_("Out of %lu items there are %zu bucket clashes" + " (longest of %zu entries).\n"), + (unsigned long) name_count, hash_clash_count, longest_clash); +- ++ + if (name_count != buckets_filled + hash_clash_count) + warn (_("The name_count (%lu) is not the same as the used bucket_count (%lu) + the hash clash count (%lu)"), + (unsigned long) name_count, +@@ -10390,7 +10390,7 @@ display_debug_names (struct dwarf_sectio + break; + if (tagno >= 0) + printf ("%s<%lu>", +- (tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"), ++ (tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"), + (unsigned long) abbrev_tag); + + for (entry = abbrev_lookup; +@@ -10919,7 +10919,7 @@ process_cu_tu_index (struct dwarf_sectio + Check for integer overflow (can occur when size_t is 32-bit) + with overlarge ncols or nused values. */ + if (nused == -1u +- || _mul_overflow ((size_t) ncols, 4, &temp) ++ || _mul_overflow ((size_t) ncols, 4, &temp) + || _mul_overflow ((size_t) nused + 1, temp, &total) + || total > (size_t) (limit - ppool)) + { +@@ -10927,7 +10927,7 @@ process_cu_tu_index (struct dwarf_sectio + section->name); + return 0; + } +- ++ + if (do_display) + { + printf (_(" Offset table\n")); +@@ -11431,8 +11431,8 @@ add_separate_debug_file (const char * fi + + static bool + debuginfod_fetch_separate_debug_info (struct dwarf_section * section, +- char ** filename, +- void * file) ++ char ** filename, ++ void * file) + { + size_t build_id_len; + unsigned char * build_id; +@@ -11450,14 +11450,14 @@ debuginfod_fetch_separate_debug_info (st + + filelen = strnlen ((const char *)section->start, section->size); + if (filelen == section->size) +- /* Corrupt debugaltlink. */ +- return false; ++ /* Corrupt debugaltlink. */ ++ return false; + + build_id = section->start + filelen + 1; + build_id_len = section->size - (filelen + 1); + + if (build_id_len == 0) +- return false; ++ return false; + } + else + return false; +@@ -11469,25 +11469,25 @@ debuginfod_fetch_separate_debug_info (st + + client = debuginfod_begin (); + if (client == NULL) +- return false; ++ return false; + + /* Query debuginfod servers for the target file. If found its path +- will be stored in filename. */ ++ will be stored in filename. */ + fd = debuginfod_find_debuginfo (client, build_id, build_id_len, filename); + debuginfod_end (client); + + /* Only free build_id if we allocated space for a hex string +- in get_build_id (). */ ++ in get_build_id (). */ + if (build_id_len == 0) +- free (build_id); ++ free (build_id); + + if (fd >= 0) +- { +- /* File successfully retrieved. Close fd since we want to +- use open_debug_file () on filename instead. */ +- close (fd); +- return true; +- } ++ { ++ /* File successfully retrieved. Close fd since we want to ++ use open_debug_file () on filename instead. */ ++ close (fd); ++ return true; ++ } + } + + return false; +@@ -11500,7 +11500,7 @@ load_separate_debug_info (const char * + parse_func_type parse_func, + check_func_type check_func, + void * func_data, +- void * file ATTRIBUTE_UNUSED) ++ void * file ATTRIBUTE_UNUSED) + { + const char * separate_filename; + char * debug_filename; +@@ -11616,11 +11616,11 @@ load_separate_debug_info (const char * + & tmp_filename, + file)) + { +- /* File successfully downloaded from server, replace +- debug_filename with the file's path. */ +- free (debug_filename); +- debug_filename = tmp_filename; +- goto found; ++ /* File successfully downloaded from server, replace ++ debug_filename with the file's path. */ ++ free (debug_filename); ++ debug_filename = tmp_filename; ++ goto found; + } + } + #endif +@@ -11787,12 +11787,12 @@ load_build_id_debug_file (const char * m + /* In theory we should extract the contents of the section into + a note structure and then check the fields. For now though + just use hard coded offsets instead: +- ++ + Field Bytes Contents + NSize 0...3 4 + DSize 4...7 8+ + Type 8..11 3 (NT_GNU_BUILD_ID) +- Name 12.15 GNU\0 ++ Name 12.15 GNU\0 + Data 16.... */ + + /* FIXME: Check the name size, name and type fields. */ +@@ -11804,7 +11804,7 @@ load_build_id_debug_file (const char * m + warn (_(".note.gnu.build-id data size is too small\n")); + return; + } +- ++ + if (build_id_size > (section->size - 16)) + { + warn (_(".note.gnu.build-id data size is too bug\n")); +@@ -12100,10 +12100,6 @@ free_debug_memory (void) + + free_all_abbrevs (); + +- free (cu_abbrev_map); +- cu_abbrev_map = NULL; +- next_free_abbrev_map_entry = 0; +- + free (shndx_pool); + shndx_pool = NULL; + shndx_pool_size = 0; diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch new file mode 100644 index 0000000000..04d06ed6b6 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch @@ -0,0 +1,95 @@ +From 695c6dfe7e85006b98c8b746f3fd5f913c94ebff Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Thu, 21 Jul 2022 09:56:15 +0930 +Subject: [PATCH] PR29370, infinite loop in display_debug_abbrev + +The PR29370 testcase is a fuzzed object file with multiple +.trace_abbrev sections. Multiple .trace_abbrev or .debug_abbrev +sections are not a violation of the DWARF standard. The DWARF5 +standard even gives an example of multiple .debug_abbrev sections +contained in groups. Caching and lookup of processed abbrevs thus +needs to be done by section and offset rather than base and offset. +(Why base anyway?) Or, since section contents are kept, by a pointer +into the contents. + + PR 29370 + * dwarf.c (struct abbrev_list): Replace abbrev_base and + abbrev_offset with raw field. + (find_abbrev_list_by_abbrev_offset): Delete. + (find_abbrev_list_by_raw_abbrev): New function. + (process_abbrev_set): Set list->raw and list->next. + (find_and_process_abbrev_set): Replace abbrev list lookup with + new function. Don't set list abbrev_base, abbrev_offset or next. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=695c6dfe7e85006b98c8b746f3fd5f913c94ebff] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> +--- + binutils/dwarf.c | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/binutils/dwarf.c b/binutils/dwarf.c +index 2fc352f74c5..99fb3566994 100644 +--- a/binutils/dwarf.c ++++ b/binutils/dwarf.c +@@ -856,8 +856,7 @@ typedef struct abbrev_list + { + abbrev_entry * first_abbrev; + abbrev_entry * last_abbrev; +- dwarf_vma abbrev_base; +- dwarf_vma abbrev_offset; ++ unsigned char * raw; + struct abbrev_list * next; + unsigned char * start_of_next_abbrevs; + } +@@ -946,14 +945,12 @@ free_all_abbrevs (void) + } + + static abbrev_list * +-find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base, +- dwarf_vma abbrev_offset) ++find_abbrev_list_by_raw_abbrev (unsigned char *raw) + { + abbrev_list * list; + + for (list = abbrev_lists; list != NULL; list = list->next) +- if (list->abbrev_base == abbrev_base +- && list->abbrev_offset == abbrev_offset) ++ if (list->raw == raw) + return list; + + return NULL; +@@ -1040,6 +1037,7 @@ process_abbrev_set (struct dwarf_section + abbrev_list *list = xmalloc (sizeof (*list)); + list->first_abbrev = NULL; + list->last_abbrev = NULL; ++ list->raw = start; + + while (start < end) + { +@@ -1055,6 +1053,7 @@ process_abbrev_set (struct dwarf_section + the caller. */ + if (start == end || entry == 0) + { ++ list->next = NULL; + list->start_of_next_abbrevs = start != end ? start : NULL; + return list; + } +@@ -1144,16 +1143,10 @@ find_and_process_abbrev_set (struct dwar + unsigned char *end = section->start + abbrev_base + abbrev_size; + abbrev_list *list = NULL; + if (free_list) +- list = find_abbrev_list_by_abbrev_offset (abbrev_base, abbrev_offset); ++ list = find_abbrev_list_by_raw_abbrev (start); + if (list == NULL) + { + list = process_abbrev_set (section, start, end); +- if (list) +- { +- list->abbrev_base = abbrev_base; +- list->abbrev_offset = abbrev_offset; +- list->next = NULL; +- } + if (free_list) + *free_list = list; + } |