diff options
author | Josh Oguin <josh.oguin@oarcorp.com> | 2014-11-19 14:28:08 -0600 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-11-26 07:51:57 -0600 |
commit | 02958c5e530541dab98415553aff69b9eed2d0fa (patch) | |
tree | 8a28881bc81509d31ec3387ee0f69f4f5c5c73ea /c/src/libchip/serial/ns16550-context.c | |
parent | libchip/display/disp_hcms29xx.c: Remove useless variable and check (diff) | |
download | rtems-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-context.c')
-rw-r--r-- | c/src/libchip/serial/ns16550-context.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/c/src/libchip/serial/ns16550-context.c b/c/src/libchip/serial/ns16550-context.c index 00ad89c2e9..087627a1f7 100644 --- a/c/src/libchip/serial/ns16550-context.c +++ b/c/src/libchip/serial/ns16550-context.c @@ -592,9 +592,13 @@ static bool 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(ctx, baud_requested); ucLineControl = 0; |