From 4bd113402b44c7f898fcbfce2e0365cd52af7063 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Mon, 25 Nov 2024 16:24:39 -0800 Subject: [PATCH] libsysprof: avoid UB on bsearch --- src/libsysprof/sysprof-address-layout.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libsysprof/sysprof-address-layout.c b/src/libsysprof/sysprof-address-layout.c index 91675485..56d09df5 100644 --- a/src/libsysprof/sysprof-address-layout.c +++ b/src/libsysprof/sysprof-address-layout.c @@ -224,11 +224,14 @@ sysprof_address_layout_lookup (SysprofAddressLayout *self, g_list_model_items_changed (G_LIST_MODEL (self), 0, old_len, self->mmaps->len); } - ret = bsearch (&address, - self->mmaps->pdata, - self->mmaps->len, - sizeof (gpointer), - find_by_address); + if (self->mmaps->len > 0) + ret = bsearch (&address, + self->mmaps->pdata, + self->mmaps->len, + sizeof (gpointer), + find_by_address); + else + ret = NULL; return ret ? *ret : NULL; }