summaryrefslogtreecommitdiffstats
path: root/c/src/libchip/serial/ns16550.c
diff options
context:
space:
mode:
authorJosh Oguin <josh.oguin@oarcorp.com>2014-11-19 14:28:08 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2014-11-26 07:51:57 -0600
commit02958c5e530541dab98415553aff69b9eed2d0fa (patch)
tree8a28881bc81509d31ec3387ee0f69f4f5c5c73ea /c/src/libchip/serial/ns16550.c
parentlibchip/display/disp_hcms29xx.c: Remove useless variable and check (diff)
downloadrtems-02958c5e530541dab98415553aff69b9eed2d0fa.tar.bz2
libchip/serial/ns16550* and z8530*: Assert on baud number to avoid divide by 0
This was flagged by CodeSonar. It should be impossible to get an incorrect baud number back but ensure this in debug mode. The _Assert() keeps their scanner from evaluating for divide by 0 past this point.
Diffstat (limited to 'c/src/libchip/serial/ns16550.c')
-rw-r--r--c/src/libchip/serial/ns16550.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/c/src/libchip/serial/ns16550.c b/c/src/libchip/serial/ns16550.c
index 2c3bc9496e..801533b631 100644
--- a/c/src/libchip/serial/ns16550.c
+++ b/c/src/libchip/serial/ns16550.c
@@ -532,9 +532,12 @@ int ns16550_set_attributes(
/*
* Calculate the baud rate divisor
+ *
+ * Assert ensures there is no division by 0.
*/
baud_requested = rtems_termios_baud_to_number(t->c_cflag);
+ _Assert( baud_requested != 0 );
ulBaudDivisor = NS16550_GetBaudDivisor(c, baud_requested);
ucLineControl = 0;