From bc0a0327ca6e47400e161f6d1e70e08cb350a36f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Mon, 3 May 2021 17:11:15 +0200 Subject: [PATCH] libselinux: label_file::init(): do not pass NULL to strdup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If any of the build flags `BUILD_HOST` or `ANDROID` is set and the caller did not pass an option of type `SELABEL_OPT_PATH`, the variable `path` might be not set. Add a check to avoid calling `strdup()` with a NULL pointer. Found by cppcheck. src/label_file.c:759:26: warning: Possible null pointer dereference: path [nullPointer] rec->spec_file = strdup(path); ^ src/label_file.c:713:21: note: Assignment 'path=NULL', assigned value is 0 const char *path = NULL; ^ src/label_file.c:759:26: note: Null pointer dereference rec->spec_file = strdup(path); ^ Signed-off-by: Christian Göttsche --- libselinux/src/label_file.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c index b080fcf1305b..4268b52c84cc 100644 --- a/libselinux/src/label_file.c +++ b/libselinux/src/label_file.c @@ -756,6 +756,10 @@ static int init(struct selabel_handle *rec, const struct selinux_opt *opts, } #endif + + if (!path) + goto finish; + rec->spec_file = strdup(path); /* -- 2.32.0