[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 01/14] term: fix error handling in hurdio_mdmctl
From: |
Justus Winter |
Subject: |
[PATCH 01/14] term: fix error handling in hurdio_mdmctl |
Date: |
Fri, 8 Nov 2013 21:24:09 +0100 |
hurdio_mdmctl allows one to set and clear bits from the modem control
bit vector. However, plausible code paths exist that leave oldbits
uninitialized. Fix this by returning an error instead if retrieving
the oldbits failed and the bit set or clear operation was selected.
Found using the Clang Static Analyzer.
* term/hurdio.c (hurdio_mdmctl): Fix error handling.
---
term/hurdio.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/term/hurdio.c b/term/hurdio.c
index 357ab38..e9e80e9 100644
--- a/term/hurdio.c
+++ b/term/hurdio.c
@@ -585,10 +585,15 @@ hurdio_mdmctl (int how, int bits)
{
error_t err = tioctl_tiocmodg (ioport, &oldbits);
if (err && (err == EMIG_BAD_ID || err == EOPNOTSUPP))
- tioc_caps &= ~TIOC_CAP_MODG;
+ {
+ tioc_caps &= ~TIOC_CAP_MODG;
+ return err;
+ }
else if (err)
return err;
}
+ else
+ return EOPNOTSUPP;
}
if (how == MDMCTL_BIS)
--
1.7.10.4
- [PATCH 01/14] term: fix error handling in hurdio_mdmctl,
Justus Winter <=
- [PATCH 07/14] proc: fix the declaraton of genpid, Justus Winter, 2013/11/08
- [PATCH 11/14] auth: fix use of uninitialized variable err, Justus Winter, 2013/11/08
- [PATCH 10/14] init: fix memory leak, Justus Winter, 2013/11/08
- [PATCH 14/14] mach-defpager: remove unused variables, Justus Winter, 2013/11/08
- [PATCH 04/14] proc: turn count_up and store_pid into normal functions, Justus Winter, 2013/11/08