[Debian-mobcom-maintainers] Bug#976882: osmo-bsc: possible null pointer dereferences

Steve Langasek steve.langasek at canonical.com
Tue Dec 8 21:19:45 GMT 2020


Package: osmo-bsc
Version: 1.3.0-3
Severity: normal
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu hirsute ubuntu-patch

Dear maintainers,

As in bug #976866, osmo-bsc is failing to build fro source on s390x in
Ubuntu, because the compiler detects that certain pointer dereferences may
be acting on a null pointer:

[...]
In file included from /usr/include/osmocom/core/msgb.h:24,
                 from /usr/include/osmocom/gsm/tlv.h:6,
                 from /usr/include/osmocom/gsm/gsm48.h:7,
                 from bsc_subscriber.c:29:
bsc_subscriber.c: In function ‘bsc_subscr_find_or_create_by_imsi’:
bsc_subscriber.c:132:18: error: potential null pointer dereference [-Werror=null-dereference]
  132 |  OSMO_ASSERT(bsub->use_count < INT_MAX);
      |              ~~~~^~~~~~~~~~~
cc1: some warnings being treated as errors
[...]

  (https://launchpad.net/ubuntu/+source/osmo-bsc/1.3.0-3/+build/20177922)

I haven't looked into why this build failure doesn't happen on other archs,
or why it wasn't seen on s390x in Debian; but I've confirmed that the
compiler's errors are correct.

In addition, while investigating this I found some errors from the compiler
due to possible snprintf truncation.  As far as I can see the right solution
here is to suppress that error.

The attached patch avoids the possible null-pointer dereferences and lets
the package build.

Thanks for considering,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru osmo-bsc-1.3.0/debian/patches/no-null-pointer-derefence.patch osmo-bsc-1.3.0/debian/patches/no-null-pointer-derefence.patch
--- osmo-bsc-1.3.0/debian/patches/no-null-pointer-derefence.patch	1969-12-31 16:00:00.000000000 -0800
+++ osmo-bsc-1.3.0/debian/patches/no-null-pointer-derefence.patch	2020-12-08 13:15:17.000000000 -0800
@@ -0,0 +1,30 @@
+Description: avoid possible null dereferences
+ Detected by the compiler on Ubuntu s390x
+Author: Steve Langasek <steve.langasek at ubuntu.com>
+Last-Update: 2020-12-08
+
+Index: osmo-bsc-1.3.0/include/osmocom/bsc/gsm_data.h
+===================================================================
+--- osmo-bsc-1.3.0.orig/include/osmocom/bsc/gsm_data.h
++++ osmo-bsc-1.3.0/include/osmocom/bsc/gsm_data.h
+@@ -1026,6 +1026,8 @@
+ 
+ static inline char *gsm_lchan_name(const struct gsm_lchan *lchan)
+ {
++	if (!lchan)
++		return NULL;
+ 	return lchan->name;
+ }
+ 
+Index: osmo-bsc-1.3.0/src/osmo-bsc/bsc_subscriber.c
+===================================================================
+--- osmo-bsc-1.3.0.orig/src/osmo-bsc/bsc_subscriber.c
++++ osmo-bsc-1.3.0/src/osmo-bsc/bsc_subscriber.c
+@@ -129,6 +129,7 @@
+ struct bsc_subscr *_bsc_subscr_get(struct bsc_subscr *bsub,
+ 				   const char *file, int line)
+ {
++	OSMO_ASSERT(bsub != NULL);
+ 	OSMO_ASSERT(bsub->use_count < INT_MAX);
+ 	bsub->use_count++;
+ 	LOGPSRC(DREF, LOGL_DEBUG, file, line,
diff -Nru osmo-bsc-1.3.0/debian/patches/series osmo-bsc-1.3.0/debian/patches/series
--- osmo-bsc-1.3.0/debian/patches/series	2020-08-09 10:28:26.000000000 -0700
+++ osmo-bsc-1.3.0/debian/patches/series	2020-12-08 12:59:17.000000000 -0800
@@ -2,3 +2,4 @@
 0002-Fix-one-struct-for-big-endian-archs.patch
 0003-Hack-in-test-suite-at-the-right-place-to-make-it-pas.patch
 gcc10.patch
+no-null-pointer-derefence.patch
diff -Nru osmo-bsc-1.3.0/debian/rules osmo-bsc-1.3.0/debian/rules
--- osmo-bsc-1.3.0/debian/rules	2018-11-15 12:41:35.000000000 -0800
+++ osmo-bsc-1.3.0/debian/rules	2020-12-08 13:08:39.000000000 -0800
@@ -6,6 +6,8 @@
 
 CHANGELOG_DATE ?= $(shell LC_ALL=C date -u -d @$(SOURCE_DATE_EPOCH) +"%d %B %Y")
 
+export DEB_CFLAGS_MAINT_APPEND = -Wno-format-truncation
+
 export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all


More information about the Debian-mobcom-maintainers mailing list