From 0712d0fdcab2077065f2b57f4cdbaa8f04d07df4 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 26 Mar 2008 07:15:03 +0100 Subject: [PATCH] ipp2p: guard against potential unaligned access get_u16() and get_u32() may get passed unaligned pointers; let's play it safe. --- extensions/xt_ipp2p.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/extensions/xt_ipp2p.c b/extensions/xt_ipp2p.c index ae8a239..c4c2eea 100644 --- a/extensions/xt_ipp2p.c +++ b/extensions/xt_ipp2p.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "xt_ipp2p.h" #include "compat_xtables.h" @@ -10,9 +11,9 @@ //#define IPP2P_DEBUG_SOUL //#define IPP2P_DEBUG_WINMX -#define get_u8(X, O) (*(__u8 *)(X + O)) -#define get_u16(X, O) (*(__u16 *)(X + O)) -#define get_u32(X, O) (*(__u32 *)(X + O)) +#define get_u8(X, O) (*(__u8 *)(X + O)) +#define get_u16(X, O) get_unaligned((__u16 *)(X + O)) +#define get_u32(X, O) get_unaligned((__u32 *)(X + O)) MODULE_AUTHOR("Eicke Friedrich/Klaus Degner "); MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic.");