commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 13/98: term: fix error handling in hurdio_mdmctl


From: Samuel Thibault
Subject: [hurd] 13/98: term: fix error handling in hurdio_mdmctl
Date: Tue, 14 Jan 2014 01:59:58 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch upstream
in repository hurd.

commit aaba23a7f450d43d0062d66a712e5d0de62f7e87
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 10:37:42 2013 +0100

    term: fix error handling in hurdio_mdmctl
    
    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..b34854c 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 EOPNOTSUPP;
+               }
              else if (err)
                return err;
            }
+         else
+           return EOPNOTSUPP;
        }
 
       if (how == MDMCTL_BIS)

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]