# HG changeset patch # User gthomas # Date 1069441605 0 # Node ID 59a0c235fb65db1abe186ee8e12bb065d0ffddf5 # Parent 0c616bec0b15db3c4b3fc727e20948708b6af0da Fix potential infinite loop diff --git a/packages/devs/serial/arm/at91/current/ChangeLog b/packages/devs/serial/arm/at91/current/ChangeLog --- a/packages/devs/serial/arm/at91/current/ChangeLog +++ b/packages/devs/serial/arm/at91/current/ChangeLog @@ -1,3 +1,8 @@ +2003-11-21 Thomas Koeller + + * src/at91_serial.c: Fix endless loop that would occur if + high-level driver was not ready to accept data received. + 2003-11-07 Thomas Koeller * src/at91_serial.c: diff --git a/packages/devs/serial/arm/at91/current/src/at91_serial.c b/packages/devs/serial/arm/at91/current/src/at91_serial.c --- a/packages/devs/serial/arm/at91/current/src/at91_serial.c +++ b/packages/devs/serial/arm/at91/current/src/at91_serial.c @@ -64,6 +64,7 @@ #include #include #include +#include externC void * memcpy( void *, const void *, size_t ); @@ -555,6 +556,9 @@ at91_serial_DSR(cyg_vector_t vector, cyg break; default: // Buffer full or unknown error, can't do anything about it + // Discard data + CYG_FAIL("Serial receiver buffer overflow"); + p = end; break; } }