[PATCH] staging: dgap: fix returned errno code in dgap_parsefile()

From: Javier Martinez Canillas
Date: Mon Sep 21 2015 - 20:39:53 EST


The driver is using -1 instead of the -ENOMEM defined macro to specify
that a buffer allocation failed. Since the error number is propagated,
the caller will get a -EPERM which is the wrong error condition.

Also, the smatch tool complains with the following warning:

dgap_parsefile() warn: returning -1 instead of -ENOMEM is sloppy

Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>

---

drivers/staging/dgap/dgap.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c
index 303d97023ccb..e17bde7bf416 100644
--- a/drivers/staging/dgap/dgap.c
+++ b/drivers/staging/dgap/dgap.c
@@ -642,7 +642,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;

@@ -861,7 +861,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = TNODE;
@@ -883,7 +883,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = CUNODE;
@@ -914,7 +914,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = LNODE;
@@ -933,7 +933,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = CNODE;
@@ -975,7 +975,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = MNODE;
@@ -1054,7 +1054,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = PNODE;
@@ -1076,7 +1076,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = JNODE;
@@ -1098,7 +1098,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = ANODE;
@@ -1120,7 +1120,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = INTRNODE;
@@ -1141,7 +1141,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = TSNODE;
@@ -1163,7 +1163,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = CSNODE;
@@ -1185,7 +1185,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = BSNODE;
@@ -1207,7 +1207,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = USNODE;
@@ -1229,7 +1229,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = FSNODE;
@@ -1251,7 +1251,7 @@ static int dgap_parsefile(char **in)

p->next = kzalloc(sizeof(struct cnode), GFP_KERNEL);
if (!p->next)
- return -1;
+ return -ENOMEM;

p = p->next;
p->type = VSNODE;
--
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/