From: Karel Zak Date: Thu, 6 Aug 2015 11:46:49 +0000 (+0200) Subject: udev: variable dereferenced before check 'cmsg' X-Git-Tag: v225~79^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93b1da852547c7f6adfaf1b3ff529927202a496d;p=thirdparty%2Fsystemd.git udev: variable dereferenced before check 'cmsg' --- diff --git a/src/udev/udev-ctrl.c b/src/udev/udev-ctrl.c index b0ad277f735..b4ae0944eb6 100644 --- a/src/udev/udev-ctrl.c +++ b/src/udev/udev-ctrl.c @@ -379,13 +379,14 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn) { cmsg_close_all(&smsg); cmsg = CMSG_FIRSTHDR(&smsg); - cred = (struct ucred *) CMSG_DATA(cmsg); if (cmsg == NULL || cmsg->cmsg_type != SCM_CREDENTIALS) { log_error("no sender credentials received, message ignored"); goto err; } + cred = (struct ucred *) CMSG_DATA(cmsg); + if (cred->uid != 0) { log_error("sender uid="UID_FMT", message ignored", cred->uid); goto err;