Attack compiler and rpmlint warnings
- Add patch to fix highly-parallel build (e.g. -j16) - Add additional compiler warning flags to highlight questionable code - Add patch to fix comparisons between signed and unsigned integers - Add patch to fix const usage - Add patch to fix missing field initializers - Add patch to suppress warnings about possibly unused variables - Add patch to fix declarations that are not prototypes - Add patch to fix warnings about nested externs - Add patch to fix dubious typecasts that violate strict-aliasing rules - Update the FSF address references and GPLv2 license text - Use default optimization level (-O2) again Some of these patches have already been accepted upstream, with the rest having been submitted for review.
This commit is contained in:
parent
d7cf92742a
commit
a322d1799b
172
pptp-1.7.2-aliasing.patch
Normal file
172
pptp-1.7.2-aliasing.patch
Normal file
@ -0,0 +1,172 @@
|
||||
diff -up pptp-1.7.2/pptp.c.alias pptp-1.7.2/pptp.c
|
||||
--- pptp-1.7.2/pptp.c.alias 2011-12-06 22:24:06.617318769 +0000
|
||||
+++ pptp-1.7.2/pptp.c 2011-12-06 22:36:25.761692858 +0000
|
||||
@@ -463,7 +463,10 @@ int open_callmgr(struct in_addr inetaddr
|
||||
char **envp, int pty_fd, int gre_fd)
|
||||
{
|
||||
/* Try to open unix domain socket to call manager. */
|
||||
- struct sockaddr_un where;
|
||||
+ union {
|
||||
+ struct sockaddr a;
|
||||
+ struct sockaddr_un u;
|
||||
+ } where;
|
||||
const int NUM_TRIES = 3;
|
||||
int i, fd;
|
||||
pid_t pid;
|
||||
@@ -473,12 +476,12 @@ int open_callmgr(struct in_addr inetaddr
|
||||
fatal("Could not create unix domain socket: %s", strerror(errno));
|
||||
}
|
||||
/* Make address */
|
||||
- callmgr_name_unixsock(&where, inetaddr, localbind);
|
||||
+ callmgr_name_unixsock(&where.u, inetaddr, localbind);
|
||||
for (i = 0; i < NUM_TRIES; i++) {
|
||||
- if (connect(fd, (struct sockaddr *) &where, sizeof(where)) < 0) {
|
||||
+ if (connect(fd, &where.a, sizeof(where.u)) < 0) {
|
||||
/* couldn't connect. We'll have to launch this guy. */
|
||||
|
||||
- unlink (where.sun_path);
|
||||
+ unlink (where.u.sun_path);
|
||||
|
||||
/* fork and launch call manager process */
|
||||
switch (pid = fork()) {
|
||||
diff -up pptp-1.7.2/pptp_callmgr.c.alias pptp-1.7.2/pptp_callmgr.c
|
||||
--- pptp-1.7.2/pptp_callmgr.c.alias 2011-12-06 22:24:06.617318769 +0000
|
||||
+++ pptp-1.7.2/pptp_callmgr.c 2011-12-06 22:34:46.142647941 +0000
|
||||
@@ -196,14 +196,17 @@ int callmgr_main(int argc, char **argv,
|
||||
/* Step 5b: Handle new connection to UNIX socket */
|
||||
if (FD_ISSET(unix_sock, &read_set)) {
|
||||
/* New call! */
|
||||
- struct sockaddr_un from;
|
||||
- socklen_t len = sizeof(from);
|
||||
+ union {
|
||||
+ struct sockaddr a;
|
||||
+ struct sockaddr_un u;
|
||||
+ } from;
|
||||
+ socklen_t len = sizeof(from.u);
|
||||
PPTP_CALL * call;
|
||||
struct local_callinfo *lci;
|
||||
int s;
|
||||
/* Accept the socket */
|
||||
FD_CLR (unix_sock, &read_set);
|
||||
- if ((s = accept(unix_sock, (struct sockaddr *) &from, &len)) < 0) {
|
||||
+ if ((s = accept(unix_sock, &from.a, &len)) < 0) {
|
||||
warn("Socket not accepted: %s", strerror(errno));
|
||||
goto skip_accept;
|
||||
}
|
||||
@@ -313,11 +316,14 @@ cleanup:
|
||||
/*** open_inetsock ************************************************************/
|
||||
int open_inetsock(struct in_addr inetaddr)
|
||||
{
|
||||
- struct sockaddr_in dest, src;
|
||||
+ union {
|
||||
+ struct sockaddr a;
|
||||
+ struct sockaddr_in i;
|
||||
+ } dest, src;
|
||||
int s;
|
||||
- dest.sin_family = AF_INET;
|
||||
- dest.sin_port = htons(PPTP_PORT);
|
||||
- dest.sin_addr = inetaddr;
|
||||
+ dest.i.sin_family = AF_INET;
|
||||
+ dest.i.sin_port = htons(PPTP_PORT);
|
||||
+ dest.i.sin_addr = inetaddr;
|
||||
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
|
||||
warn("socket: %s", strerror(errno));
|
||||
return s;
|
||||
@@ -332,14 +338,14 @@ int open_inetsock(struct in_addr inetadd
|
||||
#endif
|
||||
if (localbind.s_addr != INADDR_NONE) {
|
||||
bzero(&src, sizeof(src));
|
||||
- src.sin_family = AF_INET;
|
||||
- src.sin_addr = localbind;
|
||||
- if (bind(s, (struct sockaddr *) &src, sizeof(src)) != 0) {
|
||||
+ src.i.sin_family = AF_INET;
|
||||
+ src.i.sin_addr = localbind;
|
||||
+ if (bind(s, &src.a, sizeof(src.i)) != 0) {
|
||||
warn("bind: %s", strerror(errno));
|
||||
close(s); return -1;
|
||||
}
|
||||
}
|
||||
- if (connect(s, (struct sockaddr *) &dest, sizeof(dest)) < 0) {
|
||||
+ if (connect(s, &dest.a, sizeof(dest.i)) < 0) {
|
||||
warn("connect: %s", strerror(errno));
|
||||
close(s); return -1;
|
||||
}
|
||||
@@ -349,7 +355,10 @@ int open_inetsock(struct in_addr inetadd
|
||||
/*** open_unixsock ************************************************************/
|
||||
int open_unixsock(struct in_addr inetaddr)
|
||||
{
|
||||
- struct sockaddr_un where;
|
||||
+ union {
|
||||
+ struct sockaddr a;
|
||||
+ struct sockaddr_un u;
|
||||
+ } where;
|
||||
struct stat st;
|
||||
char *dir;
|
||||
int s;
|
||||
@@ -357,21 +366,21 @@ int open_unixsock(struct in_addr inetadd
|
||||
warn("socket: %s", strerror(errno));
|
||||
return s;
|
||||
}
|
||||
- callmgr_name_unixsock( &where, inetaddr, localbind);
|
||||
- if (stat(where.sun_path, &st) >= 0) {
|
||||
+ callmgr_name_unixsock( &where.u, inetaddr, localbind);
|
||||
+ if (stat(where.u.sun_path, &st) >= 0) {
|
||||
warn("Call manager for %s is already running.", inet_ntoa(inetaddr));
|
||||
close(s); return -1;
|
||||
}
|
||||
/* Make sure path is valid. */
|
||||
- dir = dirname(where.sun_path);
|
||||
+ dir = dirname(where.u.sun_path);
|
||||
if (!make_valid_path(dir, 0770))
|
||||
- fatal("Could not make path to %s: %s", where.sun_path, strerror(errno));
|
||||
+ fatal("Could not make path to %s: %s", where.u.sun_path, strerror(errno));
|
||||
free(dir);
|
||||
- if (bind(s, (struct sockaddr *) &where, sizeof(where)) < 0) {
|
||||
+ if (bind(s, &where.a, sizeof(where.u)) < 0) {
|
||||
warn("bind: %s", strerror(errno));
|
||||
close(s); return -1;
|
||||
}
|
||||
- chmod(where.sun_path, 0777);
|
||||
+ chmod(where.u.sun_path, 0777);
|
||||
listen(s, 127);
|
||||
return s;
|
||||
}
|
||||
diff -up pptp-1.7.2/pptp_gre.c.alias pptp-1.7.2/pptp_gre.c
|
||||
--- pptp-1.7.2/pptp_gre.c.alias 2011-12-06 22:24:06.627318773 +0000
|
||||
+++ pptp-1.7.2/pptp_gre.c 2011-12-06 22:24:06.629318775 +0000
|
||||
@@ -85,7 +85,10 @@ uint64_t time_now_usecs(void)
|
||||
/*** Open IP protocol socket **************************************************/
|
||||
int pptp_gre_bind(struct in_addr inetaddr)
|
||||
{
|
||||
- struct sockaddr_in src_addr, loc_addr;
|
||||
+ union {
|
||||
+ struct sockaddr a;
|
||||
+ struct sockaddr_in i;
|
||||
+ } loc_addr, src_addr;
|
||||
int s = socket(AF_INET, SOCK_RAW, PPTP_PROTO);
|
||||
if (s < 0) { warn("socket: %s", strerror(errno)); return -1; }
|
||||
#ifdef SO_MARK
|
||||
@@ -98,16 +101,16 @@ int pptp_gre_bind(struct in_addr inetadd
|
||||
#endif
|
||||
if (localbind.s_addr != INADDR_NONE) {
|
||||
bzero(&loc_addr, sizeof(loc_addr));
|
||||
- loc_addr.sin_family = AF_INET;
|
||||
- loc_addr.sin_addr = localbind;
|
||||
- if (bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) != 0) {
|
||||
+ loc_addr.i.sin_family = AF_INET;
|
||||
+ loc_addr.i.sin_addr = localbind;
|
||||
+ if (bind(s, &loc_addr.a, sizeof(loc_addr.i)) != 0) {
|
||||
warn("bind: %s", strerror(errno)); close(s); return -1;
|
||||
}
|
||||
}
|
||||
- src_addr.sin_family = AF_INET;
|
||||
- src_addr.sin_addr = inetaddr;
|
||||
- src_addr.sin_port = 0;
|
||||
- if (connect(s, (struct sockaddr *) &src_addr, sizeof(src_addr)) < 0) {
|
||||
+ src_addr.i.sin_family = AF_INET;
|
||||
+ src_addr.i.sin_addr = inetaddr;
|
||||
+ src_addr.i.sin_port = 0;
|
||||
+ if (connect(s, &src_addr.a, sizeof(src_addr.i)) < 0) {
|
||||
warn("connect: %s", strerror(errno)); close(s); return -1;
|
||||
}
|
||||
my = test_redirections();
|
||||
52
pptp-1.7.2-const.patch
Normal file
52
pptp-1.7.2-const.patch
Normal file
@ -0,0 +1,52 @@
|
||||
diff -up pptp-1.7.2/pptp.c.const pptp-1.7.2/pptp.c
|
||||
--- pptp-1.7.2/pptp.c.const 2011-11-30 18:58:39.713148113 +0000
|
||||
+++ pptp-1.7.2/pptp.c 2011-12-01 09:23:29.716446618 +0000
|
||||
@@ -565,10 +565,13 @@ int get_call_id(int sock, pid_t gre, pid
|
||||
void launch_pppd(char *ttydev, int argc, char **argv)
|
||||
{
|
||||
char *new_argv[argc + 4];/* XXX if not using GCC, hard code a limit here. */
|
||||
+ char str_pppd[] = PPPD_BINARY;
|
||||
+ char str_direct[] = "-direct";
|
||||
+ char str_38400[] = "38400";
|
||||
int i = 0, j;
|
||||
- new_argv[i++] = PPPD_BINARY;
|
||||
+ new_argv[i++] = str_pppd;
|
||||
#ifdef USER_PPP
|
||||
- new_argv[i++] = "-direct";
|
||||
+ new_argv[i++] = str_direct;
|
||||
/* ppp expects to have stdin connected to ttydev */
|
||||
if ((j = open(ttydev, O_RDWR)) == -1)
|
||||
fatal("Cannot open %s: %s", ttydev, strerror(errno));
|
||||
@@ -577,7 +580,7 @@ void launch_pppd(char *ttydev, int argc,
|
||||
close(j);
|
||||
#else
|
||||
new_argv[i++] = ttydev;
|
||||
- new_argv[i++] = "38400";
|
||||
+ new_argv[i++] = str_38400;
|
||||
#endif
|
||||
for (j = 0; j < argc; j++)
|
||||
new_argv[i++] = argv[j];
|
||||
diff -up pptp-1.7.2/util.c.const pptp-1.7.2/util.c
|
||||
--- pptp-1.7.2/util.c.const 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/util.c 2011-11-30 18:58:39.719148114 +0000
|
||||
@@ -16,7 +16,7 @@
|
||||
#endif
|
||||
|
||||
/* implementation of log_string, defined as extern in util.h */
|
||||
-char *log_string = "anon";
|
||||
+const char *log_string = "anon";
|
||||
|
||||
static void open_log(void) __attribute__ ((constructor));
|
||||
static void close_log(void) __attribute__ ((destructor));
|
||||
diff -up pptp-1.7.2/util.h.const pptp-1.7.2/util.h
|
||||
--- pptp-1.7.2/util.h.const 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/util.h 2011-11-30 18:59:47.458171318 +0000
|
||||
@@ -10,7 +10,7 @@
|
||||
/* log_string is an identifier for this pptp process, passed from
|
||||
command line using --log-string=X, and included with every log message.
|
||||
Useful for people with multiple pptp sessions open at a time */
|
||||
-extern char * log_string;
|
||||
+extern const char * log_string;
|
||||
|
||||
/* log_level sets the logging verbosity. Values range from 0 (errors only)
|
||||
to 1 (errors and warnings) to 2 (high verbosity, for debugging) */
|
||||
11
pptp-1.7.2-field-init.patch
Normal file
11
pptp-1.7.2-field-init.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- pptp-1.7.2/orckit_quirks.c.field 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/orckit_quirks.c 2011-12-01 09:31:04.762035792 +0000
|
||||
@@ -62,7 +62,7 @@ int
|
||||
orckit_atur3_start_ctrl_conn_hook(struct pptp_start_ctrl_conn* packet)
|
||||
{
|
||||
struct pptp_start_ctrl_conn fixed_packet = {
|
||||
- {0}, /* we'll set the header later */
|
||||
+ {0, 0, 0, 0 , 0}, /* we'll set the header later */
|
||||
hton16(PPTP_VERSION), 0, 0,
|
||||
hton32(PPTP_FRAME_ASYNC), hton32(PPTP_BEARER_ANALOG),
|
||||
hton16(0) /* max channels */,
|
||||
182
pptp-1.7.2-fsf-update.patch
Normal file
182
pptp-1.7.2-fsf-update.patch
Normal file
@ -0,0 +1,182 @@
|
||||
Index: COPYING
|
||||
===================================================================
|
||||
RCS file: /cvsroot/pptpclient/pptp-linux/COPYING,v
|
||||
retrieving revision 1.1.1.1
|
||||
diff -u -r1.1.1.1 COPYING
|
||||
--- COPYING 23 Dec 2000 08:19:51 -0000 1.1.1.1
|
||||
+++ COPYING 8 Nov 2011 16:01:32 -0000
|
||||
@@ -1,12 +1,12 @@
|
||||
- GNU GENERAL PUBLIC LICENSE
|
||||
- Version 2, June 1991
|
||||
+ GNU GENERAL PUBLIC LICENSE
|
||||
+ Version 2, June 1991
|
||||
|
||||
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
- 675 Mass Ave, Cambridge, MA 02139, USA
|
||||
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
- Preamble
|
||||
+ Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
@@ -15,7 +15,7 @@
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
-the GNU Library General Public License instead.) You can apply it to
|
||||
+the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
@@ -55,8 +55,8 @@
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
-
|
||||
- GNU GENERAL PUBLIC LICENSE
|
||||
+
|
||||
+ GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
@@ -110,7 +110,7 @@
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
-
|
||||
+
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
@@ -168,7 +168,7 @@
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
-
|
||||
+
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
@@ -225,7 +225,7 @@
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
-
|
||||
+
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
@@ -255,7 +255,7 @@
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
- NO WARRANTY
|
||||
+ NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
@@ -277,9 +277,9 @@
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
- END OF TERMS AND CONDITIONS
|
||||
-
|
||||
- Appendix: How to Apply These Terms to Your New Programs
|
||||
+ END OF TERMS AND CONDITIONS
|
||||
+
|
||||
+ How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
@@ -291,7 +291,7 @@
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
- Copyright (C) 19yy <name of author>
|
||||
+ Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -303,16 +303,16 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
- You should have received a copy of the GNU General Public License
|
||||
- along with this program; if not, write to the Free Software
|
||||
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+ You should have received a copy of the GNU General Public License along
|
||||
+ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
- Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
+ Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
@@ -335,5 +335,5 @@
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
-library. If this is what you want to do, use the GNU Library General
|
||||
+library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
Index: README
|
||||
===================================================================
|
||||
RCS file: /cvsroot/pptpclient/pptp-linux/README,v
|
||||
retrieving revision 1.5
|
||||
diff -u -r1.5 README
|
||||
--- README 28 Aug 2007 00:17:13 -0000 1.5
|
||||
+++ README 8 Nov 2011 16:01:32 -0000
|
||||
@@ -17,7 +17,8 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
+ 02110-1301, USA.
|
||||
|
||||
You can find notes on installing in the file INSTALL, usage notes in
|
||||
the file USING, design notes in the Documentation directory, and the
|
||||
Index: pptp.c
|
||||
===================================================================
|
||||
RCS file: /cvsroot/pptpclient/pptp-linux/pptp.c,v
|
||||
retrieving revision 1.55
|
||||
diff -u -r1.55 pptp.c
|
||||
--- pptp.c 3 Mar 2011 22:44:57 -0000 1.55
|
||||
+++ pptp.c 8 Nov 2011 16:01:33 -0000
|
||||
@@ -14,7 +14,8 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
+ 02110-1301, USA.
|
||||
|
||||
pptp.c ... client shell to launch call managers, data handlers, and
|
||||
the pppd from the command line.
|
||||
Index: routing.c
|
||||
===================================================================
|
||||
RCS file: /cvsroot/pptpclient/pptp-linux/routing.c,v
|
||||
retrieving revision 1.5
|
||||
diff -u -r1.5 routing.c
|
||||
--- routing.c 3 Mar 2011 22:44:57 -0000 1.5
|
||||
+++ routing.c 8 Nov 2011 16:01:33 -0000
|
||||
@@ -14,7 +14,8 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
+ 02110-1301, USA
|
||||
|
||||
*/
|
||||
|
||||
23
pptp-1.7.2-nested-externs.patch
Normal file
23
pptp-1.7.2-nested-externs.patch
Normal file
@ -0,0 +1,23 @@
|
||||
diff -up pptp-1.7.2/pptp_gre.c.nested pptp-1.7.2/pptp_gre.c
|
||||
--- pptp-1.7.2/pptp_gre.c.nested 2011-12-06 16:45:34.605691678 +0000
|
||||
+++ pptp-1.7.2/pptp_gre.c 2011-12-06 19:07:14.169449813 +0000
|
||||
@@ -23,6 +23,10 @@
|
||||
#include "pqueue.h"
|
||||
#include "test.h"
|
||||
|
||||
+/* globals from pptp.c */
|
||||
+extern struct in_addr localbind;
|
||||
+extern int rtmark;
|
||||
+
|
||||
#define PACKET_MAX 8196
|
||||
/* test for a 32 bit counter overflow */
|
||||
#define WRAPPED( curseq, lastseq) \
|
||||
@@ -82,8 +86,6 @@ uint64_t time_now_usecs(void)
|
||||
int pptp_gre_bind(struct in_addr inetaddr)
|
||||
{
|
||||
struct sockaddr_in src_addr, loc_addr;
|
||||
- extern struct in_addr localbind;
|
||||
- extern int rtmark;
|
||||
int s = socket(AF_INET, SOCK_RAW, PPTP_PROTO);
|
||||
if (s < 0) { warn("socket: %s", strerror(errno)); return -1; }
|
||||
#ifdef SO_MARK
|
||||
219
pptp-1.7.2-prototype.patch
Normal file
219
pptp-1.7.2-prototype.patch
Normal file
@ -0,0 +1,219 @@
|
||||
diff -up pptp-1.7.2/pptp_ctrl.c.prototype pptp-1.7.2/pptp_ctrl.c
|
||||
--- pptp-1.7.2/pptp_ctrl.c.prototype 2011-12-06 16:41:47.391574067 +0000
|
||||
+++ pptp-1.7.2/pptp_ctrl.c 2011-12-06 16:41:47.405574074 +0000
|
||||
@@ -174,7 +174,7 @@ int max_echo_wait = PPTP_TIMEOUT;
|
||||
|
||||
/* Local prototypes */
|
||||
static void pptp_reset_timer(void);
|
||||
-static void pptp_handle_timer();
|
||||
+static void pptp_handle_timer(void);
|
||||
/* Write/read as much as we can without blocking. */
|
||||
int pptp_write_some(PPTP_CONN * conn);
|
||||
int pptp_read_some(PPTP_CONN * conn);
|
||||
@@ -1059,7 +1059,7 @@ static void pptp_reset_timer(void)
|
||||
|
||||
|
||||
/*** Handle keep-alive timer **************************************************/
|
||||
-static void pptp_handle_timer()
|
||||
+static void pptp_handle_timer(void)
|
||||
{
|
||||
int i;
|
||||
/* "Keep Alives and Timers, 1": check connection state */
|
||||
diff -up pptp-1.7.2/pptp_gre.c.prototype pptp-1.7.2/pptp_gre.c
|
||||
--- pptp-1.7.2/pptp_gre.c.prototype 2011-12-06 16:41:47.392574067 +0000
|
||||
+++ pptp-1.7.2/pptp_gre.c 2011-12-06 16:45:34.605691678 +0000
|
||||
@@ -71,7 +71,7 @@ void print_packet(int fd, void *pack, un
|
||||
#endif
|
||||
|
||||
/*** time_now_usecs ***********************************************************/
|
||||
-uint64_t time_now_usecs()
|
||||
+uint64_t time_now_usecs(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
diff -up pptp-1.7.2/pptp_quirks.c.prototype pptp-1.7.2/pptp_quirks.c
|
||||
--- pptp-1.7.2/pptp_quirks.c.prototype 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/pptp_quirks.c 2011-12-06 16:41:47.405574074 +0000
|
||||
@@ -30,7 +30,7 @@ int set_quirk_index(int index)
|
||||
return -1;
|
||||
}
|
||||
|
||||
-int get_quirk_index()
|
||||
+int get_quirk_index(void)
|
||||
{
|
||||
return quirk_index;
|
||||
}
|
||||
diff -up pptp-1.7.2/pptp_quirks.h.prototype pptp-1.7.2/pptp_quirks.h
|
||||
--- pptp-1.7.2/pptp_quirks.h.prototype 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/pptp_quirks.h 2011-12-06 16:41:47.406574074 +0000
|
||||
@@ -53,7 +53,7 @@ int set_quirk_index(int index);
|
||||
|
||||
/* get the global quirk index. return the index on success,
|
||||
-1 if no quirk is defined */
|
||||
-int get_quirk_index();
|
||||
+int get_quirk_index(void);
|
||||
|
||||
|
||||
#endif /* INC_PPTP_QUIRKS_H */
|
||||
diff -up pptp-1.7.2/pqueue.c.prototype pptp-1.7.2/pqueue.c
|
||||
--- pptp-1.7.2/pqueue.c.prototype 2011-12-06 16:41:47.392574067 +0000
|
||||
+++ pptp-1.7.2/pqueue.c 2011-12-06 16:41:47.406574074 +0000
|
||||
@@ -217,7 +217,7 @@ int pqueue_del (pqueue_t *point) {
|
||||
|
||||
|
||||
|
||||
-pqueue_t *pqueue_head () {
|
||||
+pqueue_t *pqueue_head (void) {
|
||||
return pq_head;
|
||||
}
|
||||
|
||||
diff -up pptp-1.7.2/pqueue.h.prototype pptp-1.7.2/pqueue.h
|
||||
--- pptp-1.7.2/pqueue.h.prototype 2011-12-06 16:41:47.392574067 +0000
|
||||
+++ pptp-1.7.2/pqueue.h 2011-12-06 16:41:47.407574075 +0000
|
||||
@@ -24,7 +24,7 @@ typedef struct pqueue {
|
||||
|
||||
int pqueue_add (u_int32_t seq, unsigned char *packet, int packlen);
|
||||
int pqueue_del (pqueue_t *point);
|
||||
-pqueue_t *pqueue_head ();
|
||||
+pqueue_t *pqueue_head (void);
|
||||
int pqueue_expiry_time (pqueue_t *entry);
|
||||
|
||||
#endif /* PQUEUE_H */
|
||||
diff -up pptp-1.7.2/routing.c.prototype pptp-1.7.2/routing.c
|
||||
--- pptp-1.7.2/routing.c.prototype 2011-12-06 16:41:47.388574065 +0000
|
||||
+++ pptp-1.7.2/routing.c 2011-12-06 16:41:47.407574075 +0000
|
||||
@@ -123,7 +123,7 @@ void routing_init(char *ip) {
|
||||
#endif /* Solaris */
|
||||
}
|
||||
|
||||
-void routing_start() {
|
||||
+void routing_start(void) {
|
||||
#if defined (__SVR4) && defined (__sun) /* Solaris */
|
||||
if ( ! dorouting )
|
||||
return;
|
||||
@@ -153,7 +153,7 @@ void routing_start() {
|
||||
#endif /* Solaris */
|
||||
}
|
||||
|
||||
-void routing_end() {
|
||||
+void routing_end(void) {
|
||||
#if defined (__SVR4) && defined (__sun) /* Solaris */
|
||||
if ( ! dorouting)
|
||||
return;
|
||||
diff -up pptp-1.7.2/routing.h.prototype pptp-1.7.2/routing.h
|
||||
--- pptp-1.7.2/routing.h.prototype 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/routing.h 2011-12-06 16:41:47.407574075 +0000
|
||||
@@ -1,3 +1,3 @@
|
||||
void routing_init(char *ip);
|
||||
-void routing_start();
|
||||
-void routing_end();
|
||||
+void routing_start(void);
|
||||
+void routing_end(void);
|
||||
diff -up pptp-1.7.2/test.c.prototype pptp-1.7.2/test.c
|
||||
--- pptp-1.7.2/test.c.prototype 2011-12-06 16:41:47.393574067 +0000
|
||||
+++ pptp-1.7.2/test.c 2011-12-06 16:41:47.408574076 +0000
|
||||
@@ -171,7 +171,7 @@ static ssize_t write_reordered(int fd, c
|
||||
}
|
||||
}
|
||||
|
||||
-struct test_redirections *test_redirections()
|
||||
+struct test_redirections *test_redirections(void)
|
||||
{
|
||||
static struct test_redirections *my = NULL;
|
||||
|
||||
diff -up pptp-1.7.2/test.h.prototype pptp-1.7.2/test.h
|
||||
--- pptp-1.7.2/test.h.prototype 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/test.h 2011-12-06 16:41:47.408574076 +0000
|
||||
@@ -2,4 +2,4 @@ struct test_redirections {
|
||||
ssize_t (*write)(int fd, const void *buf, size_t count);
|
||||
};
|
||||
|
||||
-struct test_redirections *test_redirections();
|
||||
+struct test_redirections *test_redirections(void);
|
||||
diff -up pptp-1.7.2/util.c.prototype pptp-1.7.2/util.c
|
||||
--- pptp-1.7.2/util.c.prototype 2011-12-06 16:41:47.396574070 +0000
|
||||
+++ pptp-1.7.2/util.c 2011-12-06 16:41:47.409574076 +0000
|
||||
@@ -87,7 +87,7 @@ int file2fd(const char *path, const char
|
||||
static int sigpipe[2];
|
||||
|
||||
/* create a signal pipe, returns 0 for success, -1 with errno for failure */
|
||||
-int sigpipe_create()
|
||||
+int sigpipe_create(void)
|
||||
{
|
||||
int rc;
|
||||
|
||||
@@ -133,20 +133,20 @@ void sigpipe_assign(int signum)
|
||||
}
|
||||
|
||||
/* return the signal pipe read file descriptor for select(2) */
|
||||
-int sigpipe_fd()
|
||||
+int sigpipe_fd(void)
|
||||
{
|
||||
return sigpipe[0];
|
||||
}
|
||||
|
||||
/* read and return the pending signal from the pipe */
|
||||
-int sigpipe_read()
|
||||
+int sigpipe_read(void)
|
||||
{
|
||||
int signum;
|
||||
read(sigpipe[0], &signum, sizeof(signum));
|
||||
return signum;
|
||||
}
|
||||
|
||||
-void sigpipe_close()
|
||||
+void sigpipe_close(void)
|
||||
{
|
||||
close(sigpipe[0]);
|
||||
close(sigpipe[1]);
|
||||
diff -up pptp-1.7.2/util.h.prototype pptp-1.7.2/util.h
|
||||
--- pptp-1.7.2/util.h.prototype 2011-12-06 16:41:47.396574070 +0000
|
||||
+++ pptp-1.7.2/util.h 2011-12-06 16:41:47.409574076 +0000
|
||||
@@ -35,7 +35,7 @@ int file2fd(const char *path, const char
|
||||
/* signal to pipe delivery implementation */
|
||||
|
||||
/* create a signal pipe, returns 0 for success, -1 with errno for failure */
|
||||
-int sigpipe_create();
|
||||
+int sigpipe_create(void);
|
||||
|
||||
/* generic handler for signals, writes signal number to pipe */
|
||||
void sigpipe_handler(int signum);
|
||||
@@ -44,11 +44,11 @@ void sigpipe_handler(int signum);
|
||||
void sigpipe_assign(int signum);
|
||||
|
||||
/* return the signal pipe read file descriptor for select(2) */
|
||||
-int sigpipe_fd();
|
||||
+int sigpipe_fd(void);
|
||||
|
||||
/* read and return the pending signal from the pipe */
|
||||
-int sigpipe_read();
|
||||
+int sigpipe_read(void);
|
||||
|
||||
-void sigpipe_close();
|
||||
+void sigpipe_close(void);
|
||||
|
||||
#endif /* INC_UTIL_H */
|
||||
diff -up pptp-1.7.2/vector.c.prototype pptp-1.7.2/vector.c
|
||||
--- pptp-1.7.2/vector.c.prototype 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/vector.c 2011-12-06 16:41:47.409574076 +0000
|
||||
@@ -35,7 +35,7 @@ struct vector_struct {
|
||||
static struct vector_item *binary_search(VECTOR *v, int key);
|
||||
|
||||
/*** vector_create ************************************************************/
|
||||
-VECTOR *vector_create()
|
||||
+VECTOR *vector_create(void)
|
||||
{
|
||||
const int INITIAL_SIZE = 4;
|
||||
|
||||
diff -up pptp-1.7.2/vector.h.prototype pptp-1.7.2/vector.h
|
||||
--- pptp-1.7.2/vector.h.prototype 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/vector.h 2011-12-06 16:41:47.410574077 +0000
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
typedef struct vector_struct VECTOR;
|
||||
|
||||
-VECTOR *vector_create();
|
||||
+VECTOR *vector_create(void);
|
||||
void vector_destroy(VECTOR *v);
|
||||
|
||||
int vector_size(VECTOR *v);
|
||||
150
pptp-1.7.2-sign-compare.patch
Normal file
150
pptp-1.7.2-sign-compare.patch
Normal file
@ -0,0 +1,150 @@
|
||||
diff -up pptp-1.7.2/pptp_ctrl.c.sign-compare pptp-1.7.2/pptp_ctrl.c
|
||||
--- pptp-1.7.2/pptp_ctrl.c.sign-compare 2011-11-30 16:33:00.877964659 +0000
|
||||
+++ pptp-1.7.2/pptp_ctrl.c 2011-11-30 18:49:17.603973525 +0000
|
||||
@@ -193,7 +193,7 @@ int ctrlp_disp(PPTP_CONN * conn, void *
|
||||
void pptp_set_link(PPTP_CONN * conn, int peer_call_id);
|
||||
|
||||
/*** log error information in control packets *********************************/
|
||||
-static void ctrlp_error( int result, int error, int cause,
|
||||
+static void ctrlp_error( int result, u_int8_t error, int cause,
|
||||
const char *result_text[], int max_result)
|
||||
{
|
||||
if( cause >= 0)
|
||||
@@ -238,7 +238,7 @@ static const char *ctrl_msg_types[] = {
|
||||
#define MAX_CTRLMSG_TYPE 15
|
||||
|
||||
/*** report a sent packet ****************************************************/
|
||||
-static void ctrlp_rep( void * buffer, int size, int isbuff)
|
||||
+static void ctrlp_rep( void * buffer, size_t size, int isbuff)
|
||||
{
|
||||
struct pptp_header *packet = buffer;
|
||||
unsigned int type;
|
||||
@@ -532,7 +532,7 @@ int pptp_write_some(PPTP_CONN * conn) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
- assert(retval <= conn->write_size);
|
||||
+ assert((size_t)retval <= conn->write_size);
|
||||
conn->write_size -= retval;
|
||||
memmove(conn->write_buffer, conn->write_buffer + retval, conn->write_size);
|
||||
ctrlp_rep(conn->write_buffer, retval, 0);
|
||||
diff -up pptp-1.7.2/pptp_gre.c.sign-compare pptp-1.7.2/pptp_gre.c
|
||||
--- pptp-1.7.2/pptp_gre.c.sign-compare 2011-11-30 16:33:00.899964648 +0000
|
||||
+++ pptp-1.7.2/pptp_gre.c 2011-11-30 16:33:00.911964643 +0000
|
||||
@@ -200,8 +200,7 @@ void pptp_gre_copy(u_int16_t call_id, u_
|
||||
int decaps_hdlc(int fd, int (*cb)(int cl, void *pack, unsigned int len), int cl)
|
||||
{
|
||||
unsigned char buffer[PACKET_MAX];
|
||||
- unsigned int start = 0;
|
||||
- int end;
|
||||
+ ssize_t start = 0, end;
|
||||
int status;
|
||||
static unsigned int len = 0, escape = 0;
|
||||
static unsigned char copy[PACKET_MAX];
|
||||
@@ -210,7 +209,7 @@ int decaps_hdlc(int fd, int (*cb)(int cl
|
||||
/* this is the only blocking read we will allow */
|
||||
if ((end = read (fd, buffer, sizeof(buffer))) <= 0) {
|
||||
int saved_errno = errno;
|
||||
- warn("short read (%d): %s", end, strerror(saved_errno));
|
||||
+ warn("short read (%zd): %s", end, strerror(saved_errno));
|
||||
switch (saved_errno) {
|
||||
case EMSGSIZE: {
|
||||
socklen_t optval, optlen = sizeof(optval);
|
||||
@@ -499,7 +498,7 @@ int encaps_gre (int fd, void *pack, unsi
|
||||
if (errno == ENOBUFS)
|
||||
rc = 0; /* Simply ignore it */
|
||||
stats.tx_failed++;
|
||||
- } else if (rc < sizeof(u.header) - sizeof(u.header.seq)) {
|
||||
+ } else if ((size_t)rc < sizeof(u.header) - sizeof(u.header.seq)) {
|
||||
stats.tx_short++;
|
||||
} else {
|
||||
stats.tx_acks++;
|
||||
@@ -533,7 +532,7 @@ int encaps_gre (int fd, void *pack, unsi
|
||||
if (errno == ENOBUFS)
|
||||
rc = 0; /* Simply ignore it */
|
||||
stats.tx_failed++;
|
||||
- } else if (rc < header_len + len) {
|
||||
+ } else if ((size_t)rc < header_len + len) {
|
||||
stats.tx_short++;
|
||||
} else {
|
||||
stats.tx_sent++;
|
||||
diff -up pptp-1.7.2/pqueue.c.sign-compare pptp-1.7.2/pqueue.c
|
||||
--- pptp-1.7.2/pqueue.c.sign-compare 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/pqueue.c 2011-11-30 16:41:39.598648652 +0000
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#define MIN_CAPACITY 128 /* min allocated buffer for a packet */
|
||||
|
||||
-static int pqueue_alloc (int seq, unsigned char *packet, int packlen, pqueue_t **new);
|
||||
+static int pqueue_alloc (u_int32_t seq, unsigned char *packet, int packlen, pqueue_t **new);
|
||||
|
||||
int packet_timeout_usecs = DEFAULT_PACKET_TIMEOUT * 1000000;
|
||||
|
||||
@@ -29,7 +29,7 @@ static pqueue_t *pq_freelist_head = NULL
|
||||
|
||||
|
||||
|
||||
-static int pqueue_alloc(int seq, unsigned char *packet, int packlen, pqueue_t **new) {
|
||||
+static int pqueue_alloc(u_int32_t seq, unsigned char *packet, int packlen, pqueue_t **new) {
|
||||
|
||||
pqueue_t *newent;
|
||||
|
||||
@@ -125,7 +125,7 @@ static int pqueue_alloc(int seq, unsigne
|
||||
|
||||
|
||||
|
||||
-int pqueue_add (int seq, unsigned char *packet, int packlen) {
|
||||
+int pqueue_add (u_int32_t seq, unsigned char *packet, int packlen) {
|
||||
pqueue_t *newent, *point;
|
||||
|
||||
/* get a new entry */
|
||||
diff -up pptp-1.7.2/pqueue.h.sign-compare pptp-1.7.2/pqueue.h
|
||||
--- pptp-1.7.2/pqueue.h.sign-compare 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/pqueue.h 2011-11-30 18:42:16.733706666 +0000
|
||||
@@ -15,14 +15,14 @@ extern int packet_timeout_usecs;
|
||||
typedef struct pqueue {
|
||||
struct pqueue *next;
|
||||
struct pqueue *prev;
|
||||
- int seq;
|
||||
+ u_int32_t seq;
|
||||
struct timeval expires;
|
||||
unsigned char *packet;
|
||||
int packlen;
|
||||
int capacity;
|
||||
} pqueue_t;
|
||||
|
||||
-int pqueue_add (int seq, unsigned char *packet, int packlen);
|
||||
+int pqueue_add (u_int32_t seq, unsigned char *packet, int packlen);
|
||||
int pqueue_del (pqueue_t *point);
|
||||
pqueue_t *pqueue_head ();
|
||||
int pqueue_expiry_time (pqueue_t *entry);
|
||||
diff -up pptp-1.7.2/test.c.sign-compare pptp-1.7.2/test.c
|
||||
--- pptp-1.7.2/test.c.sign-compare 2008-05-14 07:33:55.000000000 +0100
|
||||
+++ pptp-1.7.2/test.c 2011-11-30 18:45:44.553853995 +0000
|
||||
@@ -52,7 +52,7 @@ static ssize_t write_reordered_swap(int
|
||||
test_ordering_phase = 0;
|
||||
/* send the new packet first */
|
||||
stat = write(fd, buf, count);
|
||||
- if (stat != count) return stat;
|
||||
+ if ((size_t)stat != count) return stat;
|
||||
/* then send the old packet next */
|
||||
stat = write(fd, pocket_buf, pocket_count);
|
||||
free(pocket_buf);
|
||||
@@ -96,7 +96,7 @@ static ssize_t write_reordered_retransmi
|
||||
test_ordering_phase = 0;
|
||||
/* send the new packet first */
|
||||
stat = write(fd, buf, count);
|
||||
- if (stat != count) return stat;
|
||||
+ if ((size_t)stat != count) return stat;
|
||||
/* send the buffered packets in normal order */
|
||||
for (n=0; n<test_length; n++) {
|
||||
stat = write(fd, pocket_buf[n], pocket_count[n]);
|
||||
@@ -142,7 +142,7 @@ static ssize_t write_reordered_reverse(i
|
||||
test_ordering_phase = 0;
|
||||
/* send the new packet first */
|
||||
stat = write(fd, buf, count);
|
||||
- if (stat != count) return stat;
|
||||
+ if ((size_t)stat != count) return stat;
|
||||
/* send the buffered packets in reverse order */
|
||||
for (n=test_length-1; n>0; n--) {
|
||||
stat = write(fd, pocket_buf[n], pocket_count[n]);
|
||||
73
pptp-1.7.2-unused.patch
Normal file
73
pptp-1.7.2-unused.patch
Normal file
@ -0,0 +1,73 @@
|
||||
diff -up pptp-1.7.2/pptp_callmgr.c.unused pptp-1.7.2/pptp_callmgr.c
|
||||
--- pptp-1.7.2/pptp_callmgr.c.unused 2011-12-01 09:58:47.127960697 +0000
|
||||
+++ pptp-1.7.2/pptp_callmgr.c 2011-12-01 09:58:47.149960723 +0000
|
||||
@@ -38,12 +38,12 @@ void close_unixsock(int fd, struct in_ad
|
||||
|
||||
sigjmp_buf callmgr_env;
|
||||
|
||||
-void callmgr_sighandler(int sig) {
|
||||
+void callmgr_sighandler(int sig __attribute__ ((unused))) {
|
||||
/* TODO: according to signal(2), siglongjmp() is unsafe used here */
|
||||
siglongjmp (callmgr_env, 1);
|
||||
}
|
||||
|
||||
-void callmgr_do_nothing(int sig) {
|
||||
+void callmgr_do_nothing(int sig __attribute__ ((unused))) {
|
||||
/* do nothing signal handler */
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ void call_callback(PPTP_CONN *conn, PPTP
|
||||
*****************************************************************************/
|
||||
|
||||
/*** Call Manager *************************************************************/
|
||||
-int callmgr_main(int argc, char **argv, char **envp)
|
||||
+int callmgr_main(int argc, char **argv, char **envp __attribute__ ((unused)))
|
||||
{
|
||||
struct in_addr inetaddr;
|
||||
int inet_sock, unix_sock;
|
||||
@@ -377,7 +377,7 @@ int open_unixsock(struct in_addr inetadd
|
||||
}
|
||||
|
||||
/*** close_inetsock ***********************************************************/
|
||||
-void close_inetsock(int fd, struct in_addr inetaddr)
|
||||
+void close_inetsock(int fd, struct in_addr inetaddr __attribute__ ((unused)))
|
||||
{
|
||||
close(fd);
|
||||
}
|
||||
diff -up pptp-1.7.2/pptp.c.unused pptp-1.7.2/pptp.c
|
||||
--- pptp-1.7.2/pptp.c.unused 2011-12-01 09:58:47.143960715 +0000
|
||||
+++ pptp-1.7.2/pptp.c 2011-12-01 10:01:40.171147875 +0000
|
||||
@@ -151,13 +151,13 @@ void do_nothing(int sig)
|
||||
sigjmp_buf env;
|
||||
|
||||
/*** signal handler ***********************************************************/
|
||||
-void sighandler(int sig)
|
||||
+void sighandler(int sig __attribute__ ((unused)))
|
||||
{
|
||||
siglongjmp(env, 1);
|
||||
}
|
||||
|
||||
/*** report statistics signal handler (SIGUSR1) *******************************/
|
||||
-void sigstats(int sig)
|
||||
+void sigstats(int sig __attribute__ ((unused)))
|
||||
{
|
||||
syslog(LOG_NOTICE, "GRE statistics:\n");
|
||||
#define LOG(name,value) syslog(LOG_NOTICE, name "\n", stats .value)
|
||||
@@ -508,7 +508,7 @@ int open_callmgr(struct in_addr inetaddr
|
||||
}
|
||||
|
||||
/*** call the call manager main ***********************************************/
|
||||
-void launch_callmgr(struct in_addr inetaddr, char *phonenr, int argc,
|
||||
+void launch_callmgr(struct in_addr inetaddr, char *phonenr, int argc __attribute__ ((unused)),
|
||||
char**argv,char**envp)
|
||||
{
|
||||
char *my_argv[3] = { argv[0], inet_ntoa(inetaddr), phonenr };
|
||||
@@ -566,7 +566,7 @@ void launch_pppd(char *ttydev, int argc,
|
||||
{
|
||||
char *new_argv[argc + 4];/* XXX if not using GCC, hard code a limit here. */
|
||||
char str_pppd[] = PPPD_BINARY;
|
||||
- char str_direct[] = "-direct";
|
||||
+ char str_direct[] __attribute__ ((unused)) = "-direct";
|
||||
char str_38400[] = "38400";
|
||||
int i = 0, j;
|
||||
new_argv[i++] = str_pppd;
|
||||
51
pptp.spec
51
pptp.spec
@ -1,6 +1,6 @@
|
||||
Name: pptp
|
||||
Version: 1.7.2
|
||||
Release: 13.1%{?dist}
|
||||
Release: 13.2%{?dist}
|
||||
Summary: Point-to-Point Tunneling Protocol (PPTP) Client
|
||||
Group: Applications/Internet
|
||||
License: GPLv2+
|
||||
@ -20,6 +20,14 @@ Patch9: pptp-1.7.2-call-disconnect-notify.patch
|
||||
Patch10: pptp-1.7.2-so_mark.patch
|
||||
Patch11: pptp-1.7.2-nohostroute-option.patch
|
||||
Patch12: pptp-1.7.2-parallel-build.patch
|
||||
Patch13: pptp-1.7.2-fsf-update.patch
|
||||
Patch101: pptp-1.7.2-sign-compare.patch
|
||||
Patch102: pptp-1.7.2-const.patch
|
||||
Patch103: pptp-1.7.2-field-init.patch
|
||||
Patch104: pptp-1.7.2-unused.patch
|
||||
Patch105: pptp-1.7.2-prototype.patch
|
||||
Patch106: pptp-1.7.2-nested-externs.patch
|
||||
Patch107: pptp-1.7.2-aliasing.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
|
||||
Requires: ppp >= 2.4.2, /sbin/ip
|
||||
%if 0%{?fedora} > 14
|
||||
@ -84,12 +92,36 @@ tunnels.
|
||||
# Implement the --nohostroute option that routing.c talks about (upstream patch)
|
||||
%patch11 -p1 -b .nohostroute
|
||||
|
||||
# Update the FSF address references and GPLv2 license text (upstream patch)
|
||||
%patch13 -p0 -b .fsf
|
||||
|
||||
# Fix comparisons between signed and unsigned integers
|
||||
%patch101 -p1 -b .sign-compare
|
||||
|
||||
# Fix const usage
|
||||
%patch102 -p1 -b .const
|
||||
|
||||
# Add missing field initializers
|
||||
%patch103 -p1 -b .field
|
||||
|
||||
# Suppress warnings about possibly unused variables
|
||||
%patch104 -p1 -b .unused
|
||||
|
||||
# Fix declarations that are not prototypes
|
||||
%patch105 -p1 -b .prototype
|
||||
|
||||
# Fix warnings about nested externs
|
||||
%patch106 -p1 -b .nested
|
||||
|
||||
# Fix aliasing issues
|
||||
%patch107 -p1 -b .alias
|
||||
|
||||
# Pacify rpmlint
|
||||
perl -pi -e 's/install -o root -m 555 pptp/install -m 755 pptp/;' Makefile
|
||||
|
||||
%build
|
||||
OUR_CFLAGS="$(echo X%{optflags} | sed -e 's/^X//; s/-O[0-9]* /-O0 /')"
|
||||
make %{?_smp_mflags} CFLAGS="-Wall $OUR_CFLAGS" IP=/sbin/ip
|
||||
OUR_CFLAGS="-Wall %{optflags} -Wextra -Wstrict-aliasing=2 -Wnested-externs -Wstrict-prototypes"
|
||||
make %{?_smp_mflags} CFLAGS="$OUR_CFLAGS" IP=/sbin/ip
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
@ -126,6 +158,19 @@ rm -rf %{buildroot}
|
||||
%{_mandir}/man8/pptpsetup.8*
|
||||
|
||||
%changelog
|
||||
* Wed Nov 30 2011 Paul Howarth <paul@city-fan.org> 1.7.2-13.2
|
||||
- Add patch to fix highly-parallel build (e.g. -j16)
|
||||
- Add additional compiler warning flags to highlight questionable code
|
||||
- Add patch to fix comparisons between signed and unsigned integers
|
||||
- Add patch to fix const usage
|
||||
- Add patch to fix missing field initializers
|
||||
- Add patch to suppress warnings about possibly unused variables
|
||||
- Add patch to fix declarations that are not prototypes
|
||||
- Add patch to fix warnings about nested externs
|
||||
- Add patch to fix dubious typecasts that violate strict-aliasing rules
|
||||
- Update the FSF address references and GPLv2 license text
|
||||
- Use default optimization level (-O2) again
|
||||
|
||||
* Fri Nov 11 2011 Paul Howarth <paul@city-fan.org> 1.7.2-13.1
|
||||
- Drop compiler optimization level to -O0 as per upstream in attempt to
|
||||
resolve occasional segfault in pptpcm (#749455)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user