diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | plugins/omudpspoof/omudpspoof.c | 8 |
2 files changed, 10 insertions, 1 deletions
@@ -730,6 +730,9 @@ Version 5.10.2 [V5-STABLE], 201?-??-?? Thanks to Marius Tomaschewski for the bug report and the patch idea. - bugfix: invalid DST handling under Solaris Thanks to Scott Severtson for the patch. +- bugfix[kind of]: omudpspoof discarded messages >1472 bytes (MTU size) + it now truncates these message, but ensures they are sent. Note that + 7.2.5+ will switch to fragmented UDP messages instead (up to 64K) --------------------------------------------------------------------------- Version 5.10.1 [V5-STABLE], 2012-10-17 - bugfix: imuxsock and imklog truncated head of received message diff --git a/plugins/omudpspoof/omudpspoof.c b/plugins/omudpspoof/omudpspoof.c index 531a0dcf..d2c5364c 100644 --- a/plugins/omudpspoof/omudpspoof.c +++ b/plugins/omudpspoof/omudpspoof.c @@ -337,6 +337,12 @@ UDPSend(instanceData *pData, uchar *pszSourcename, char *msg, size_t len) CHKiRet(doTryResume(pData)); } + if(len > 1472) { + DBGPRINTF("omudpspoof: msg with length %d truncated to 1472 bytes: '%.768s'\n", + len, msg); + len = 1472; + } + ip = ipo = udp = 0; if(pData->sourcePort++ >= pData->sourcePortEnd){ pData->sourcePort = pData->sourcePortStart; @@ -385,7 +391,7 @@ UDPSend(instanceData *pData, uchar *pszSourcename, char *msg, size_t len) /* Write it to the wire. */ lsent = libnet_write(libnet_handle); if (lsent == -1) { - DBGPRINTF("Write error: %s\n", libnet_geterror(libnet_handle)); + DBGPRINTF("omudpspoof: write error: %s\n", libnet_geterror(libnet_handle)); } else { bSendSuccess = RSTRUE; break; |