mirror of
https://github.com/systemd/systemd.git
synced 2025-03-26 22:50:16 +03:00
udev: fix NULL-ptr deref
Make sure we properly validate the return value of udev_device_get_sysattr_value(). It might be NULL for several reasons.
This commit is contained in:
parent
5e2de0eb1d
commit
975a900782
@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2009 Martin Pitt <martin.pitt@ubuntu.com>
|
||||
* Portions Copyright (C) 2004 David Zeuthen, <david@fubar.dk>
|
||||
* Copyright (C) 2011 Kay Sievers <kay@vrfy.org>
|
||||
* Copyright (C) 2014 David Herrmann <dh.herrmann@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -48,12 +49,17 @@ static void get_cap_mask(struct udev_device *dev,
|
||||
struct udev_device *pdev, const char* attr,
|
||||
unsigned long *bitmask, size_t bitmask_size,
|
||||
bool test) {
|
||||
const char *v;
|
||||
char text[4096];
|
||||
unsigned i;
|
||||
char* word;
|
||||
unsigned long val;
|
||||
|
||||
snprintf(text, sizeof(text), "%s", udev_device_get_sysattr_value(pdev, attr));
|
||||
v = udev_device_get_sysattr_value(pdev, attr);
|
||||
if (!v)
|
||||
v = "";
|
||||
|
||||
snprintf(text, sizeof(text), "%s", v);
|
||||
log_debug("%s raw kernel attribute: %s", attr, text);
|
||||
|
||||
memzero(bitmask, bitmask_size);
|
||||
|
Loading…
x
Reference in New Issue
Block a user