[PATCH 1/9] console: Fix possible null pointer dereference
Alexander Shiyan
shc_work at mail.ru
Fri Apr 26 12:41:06 EDT 2013
Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
common/console.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/common/console.c b/common/console.c
index beb37bd..965be03 100644
--- a/common/console.c
+++ b/common/console.c
@@ -62,23 +62,23 @@ static int console_std_set(struct device_d *dev, struct param_d *param,
char active[4];
unsigned int flag = 0, i = 0;
- if (!val)
- dev_param_set_generic(dev, param, NULL);
-
- if (strchr(val, 'i') && cdev->f_caps & CONSOLE_STDIN) {
- active[i++] = 'i';
- flag |= CONSOLE_STDIN;
- }
+ if (val) {
+ if (strchr(val, 'i') && cdev->f_caps & CONSOLE_STDIN) {
+ active[i++] = 'i';
+ flag |= CONSOLE_STDIN;
+ }
- if (strchr(val, 'o') && cdev->f_caps & CONSOLE_STDOUT) {
- active[i++] = 'o';
- flag |= CONSOLE_STDOUT;
- }
+ if (strchr(val, 'o') && cdev->f_caps & CONSOLE_STDOUT) {
+ active[i++] = 'o';
+ flag |= CONSOLE_STDOUT;
+ }
- if (strchr(val, 'e') && cdev->f_caps & CONSOLE_STDERR) {
- active[i++] = 'e';
- flag |= CONSOLE_STDERR;
- }
+ if (strchr(val, 'e') && cdev->f_caps & CONSOLE_STDERR) {
+ active[i++] = 'e';
+ flag |= CONSOLE_STDERR;
+ }
+ } else
+ dev_param_set_generic(dev, param, NULL);
active[i] = 0;
cdev->f_active = flag;
--
1.8.1.5
More information about the barebox
mailing list