# HG changeset patch # User msalter # Date 1080673754 0 # Node ID 31dd38f564ec9b385a92b44c5c439260a979ba52 # Parent 9a02066374303e143950a8def746e29c8a7c5984 udp tweak diff --git a/packages/redboot/current/ChangeLog b/packages/redboot/current/ChangeLog --- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,8 @@ +2004-03-30 Mark Salter + + * src/net/udp.c (__udp_recvfrom_handler): Protect against back-to-back + duplicate packets. + 2004-03-17 Thomas Koeller * src/fs/fileio.c: Only include IO package headers if required. diff --git a/packages/redboot/current/src/net/udp.c b/packages/redboot/current/src/net/udp.c --- a/packages/redboot/current/src/net/udp.c +++ b/packages/redboot/current/src/net/udp.c @@ -8,7 +8,7 @@ //####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. -// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Red Hat, Inc. // Copyright (C) 2002, 2003 Gary Thomas // // eCos is free software; you can redistribute it and/or modify it under @@ -219,7 +219,7 @@ static void __udp_recvfrom_handler(udp_socket_t *skt, char *buf, int len, ip_route_t *src_route, word src_port) { - if (recvfrom_server == NULL) + if (recvfrom_server == NULL || recvfrom_buf == NULL) return; if (recvfrom_server->sin_port && recvfrom_server->sin_port != htons(src_port))