1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
diff -Naurp old/miniupnpd-1.3/Changelog.txt new/miniupnpd-1.3/Changelog.txt
--- old/miniupnpd-1.3/Changelog.txt 2009-04-17 20:08:04.000000000 +0000
+++ new/miniupnpd-1.3/Changelog.txt 2009-05-16 08:45:19.000000000 +0000
@@ -1,5 +1,12 @@
-$Id: Changelog.txt,v 1.169 2009/04/17 19:58:38 nanard Exp $
+$Id: Changelog.txt,v 1.171 2009/05/16 08:44:15 nanard Exp $
+2009/05/16:
+ Fixed a buffer overflow in ProcessSSDPRequest()
+
+2009/05/11:
+ improving genconfig.sh for NetBSD : detecting use of pf or ipf
+
+VERSION 1.3 :
2009/04/17:
working support for iptables >= 1.4.3
diff -Naurp old/miniupnpd-1.3/genconfig.sh new/miniupnpd-1.3/genconfig.sh
--- old/miniupnpd-1.3/genconfig.sh 2008-10-01 12:49:26.000000000 +0000
+++ new/miniupnpd-1.3/genconfig.sh 2009-05-16 08:45:19.000000000 +0000
@@ -1,8 +1,8 @@
#! /bin/sh
-# $Id: genconfig.sh,v 1.29 2008/10/01 11:19:38 nanard Exp $
+# $Id: genconfig.sh,v 1.31 2009/05/12 08:27:31 nanard Exp $
# miniupnp daemon
# http://miniupnp.free.fr or http://miniupnp.tuxfamily.org/
-# (c) 2006-2008 Thomas Bernard
+# (c) 2006-2009 Thomas Bernard
# This software is subject to the conditions detailed in the
# LICENCE file provided within the distribution
@@ -32,7 +32,7 @@ ${RM} ${CONFIGFILE}
echo "/* MiniUPnP Project" >> ${CONFIGFILE}
echo " * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/" >> ${CONFIGFILE}
-echo " * (c) 2006-2008 Thomas Bernard" >> ${CONFIGFILE}
+echo " * (c) 2006-2009 Thomas Bernard" >> ${CONFIGFILE}
echo " * generated by $0 on `date` */" >> ${CONFIGFILE}
echo "#ifndef $CONFIGMACRO" >> ${CONFIGFILE}
echo "#define $CONFIGMACRO" >> ${CONFIGFILE}
@@ -95,14 +95,22 @@ case $OS_NAME in
OS_URL=http://www.pfsense.com/
;;
NetBSD)
- OS_URL=http://www.netbsd.org/
- if [ -f /usr/include/net/pfvar.h ] ; then
+ # source file with handy subroutines like checkyesno
+ . /etc/rc.subr
+ # source config file so we can probe vars
+ . /etc/rc.conf
+ if checkyesno pf; then
echo "#define USE_PF 1" >> ${CONFIGFILE}
FW=pf
- else
+ elif checkyesno ipfilter; then
echo "#define USE_IPF 1" >> ${CONFIGFILE}
FW=ipf
+ else
+ echo "Could not detect ipf nor pf, defaulting to pf."
+ echo "#define USE_PF 1" >> ${CONFIGFILE}
+ FW=pf
fi
+ OS_URL=http://www.netbsd.org/
;;
SunOS)
echo "#define USE_IPF 1" >> ${CONFIGFILE}
diff -Naurp old/miniupnpd-1.3/INSTALL new/miniupnpd-1.3/INSTALL
--- old/miniupnpd-1.3/INSTALL 2009-04-10 08:56:54.000000000 +0000
+++ new/miniupnpd-1.3/INSTALL 2009-05-16 08:45:19.000000000 +0000
@@ -61,6 +61,8 @@ To Build and install :
> make -f Makefile.linux
If not using iptables from your system,
> IPTABLESPATH=/path/to/iptables-1.4.1 make -f Makefile.linux
+ note : make sure you have iptables with static libraries compiled.
+ use "./configure --enable-static" before compiling iptables
- install as root using :
> make -f Makefile.linux install
- A miniupnpd script should be installed to /etc/init.d
diff -Naurp old/miniupnpd-1.3/Makefile new/miniupnpd-1.3/Makefile
--- old/miniupnpd-1.3/Makefile 2009-01-29 18:21:05.000000000 +0000
+++ new/miniupnpd-1.3/Makefile 2009-05-16 08:45:19.000000000 +0000
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.49 2009/01/29 18:21:05 nanard Exp $
+# $Id: Makefile,v 1.50 2009/05/11 12:38:35 nanard Exp $
# MiniUPnP project
# http://miniupnp.free.fr/
# Author: Thomas Bernard
@@ -30,6 +30,12 @@ FWNAME != . /etc/rc.subr; . /etc/rc.conf
echo "ipf"; else echo "pf"; fi
.endif
+.if $(OSNAME) == "NetBSD"
+FWNAME != . /etc/rc.subr; . /etc/rc.conf; \
+ if checkyesno ipfilter; then \
+ echo "ipf"; else echo "pf"; fi
+.endif
+
# Solaris specific CFLAGS
.if $(OSNAME) == "SunOS"
CFLAGS += -DSOLARIS2=`uname -r | cut -d. -f2`
diff -Naurp old/miniupnpd-1.3/Makefile.linux new/miniupnpd-1.3/Makefile.linux
--- old/miniupnpd-1.3/Makefile.linux 2009-04-17 20:08:04.000000000 +0000
+++ new/miniupnpd-1.3/Makefile.linux 2009-05-16 08:45:19.000000000 +0000
@@ -1,4 +1,4 @@
-# $Id: Makefile.linux,v 1.45 2009/04/17 19:58:38 nanard Exp $
+# $Id: Makefile.linux,v 1.46 2009/04/25 23:16:38 nanard Exp $
# MiniUPnP project
# http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
# Author : Thomas Bernard
@@ -53,7 +53,8 @@ TEST := $(shell [ \( \( $(IPTABLESVERSIO
ifeq ($(TEST), 1)
CFLAGS := $(CFLAGS) -DIPTABLES_143
# the following sucks, but works
-LIBS = $(IPTABLESPATH)/libiptc/.libs/libip4tc.o
+#LIBS = $(IPTABLESPATH)/libiptc/.libs/libip4tc.o
+LIBS = $(IPTABLESPATH)/libiptc/.libs/libiptc.a
else
LIBS = $(IPTABLESPATH)/libiptc/libiptc.a
endif
diff -Naurp old/miniupnpd-1.3/minissdp.c new/miniupnpd-1.3/minissdp.c
--- old/miniupnpd-1.3/minissdp.c 2008-11-24 09:48:07.000000000 +0000
+++ new/miniupnpd-1.3/minissdp.c 2009-05-16 08:45:19.000000000 +0000
@@ -1,4 +1,4 @@
-/* $Id: minissdp.c,v 1.15 2008/11/24 09:48:00 nanard Exp $ */
+/* $Id: minissdp.c,v 1.16 2009/05/16 08:44:16 nanard Exp $ */
/* MiniUPnP project
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
* (c) 2006 Thomas Bernard
@@ -331,10 +331,10 @@ ProcessSSDPRequest(int s, unsigned short
i = 0;
while(i < n)
{
- while(bufr[i] != '\r' || bufr[i+1] != '\n')
+ while((i < n - 1) && (bufr[i] != '\r' || bufr[i+1] != '\n'))
i++;
i += 2;
- if(strncasecmp(bufr+i, "st:", 3) == 0)
+ if((i < n - 3) && (strncasecmp(bufr+i, "st:", 3) == 0))
{
st = bufr+i+3;
st_len = 0;
@@ -352,7 +352,7 @@ ProcessSSDPRequest(int s, unsigned short
/*syslog(LOG_INFO, "SSDP M-SEARCH packet received from %s:%d",
inet_ntoa(sendername.sin_addr),
ntohs(sendername.sin_port) );*/
- if(st)
+ if(st && (st_len > 0))
{
/* TODO : doesnt answer at once but wait for a random time */
syslog(LOG_INFO, "SSDP M-SEARCH from %s:%d ST: %.*s",
|