⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portmap-02-4.0-malloc.patch

📁 用于生成linux操作系统下的交叉编译工具链和嵌入式linux系统的根文件系统,支持x86、arm、powerpc等处理器
💻 PATCH
字号:
diff -urN portmap_4/daemon.c portmap_4.new/daemon.c--- portmap_4/daemon.c	Thu Jun 11 13:53:12 1992+++ portmap_4.new/daemon.c	Mon Nov 29 18:37:28 1999@@ -35,7 +35,9 @@ static char sccsid[] = "@(#)daemon.c	5.3 (Berkeley) 12/28/90"; #endif /* LIBC_SCCS and not lint */ +#include <sys/types.h> #include <fcntl.h>+#include <unistd.h>  /* From unistd.h */ #define STDIN_FILENO	0@@ -44,7 +46,7 @@  /* From paths.h */ #define _PATH_DEVNULL	"/dev/null"-+int daemon(nochdir, noclose) 	int nochdir, noclose; {diff -urN portmap_4/from_local.c portmap_4.new/from_local.c--- portmap_4/from_local.c	Fri May 31 06:52:58 1996+++ portmap_4.new/from_local.c	Tue Nov 30 01:21:27 1999@@ -46,12 +46,14 @@ #include <sys/types.h> #include <sys/socket.h> #include <stdio.h>-#include <stdlib.h>+#include <unistd.h> #include <netdb.h> #include <netinet/in.h> #include <net/if.h> #include <sys/ioctl.h> #include <syslog.h>+#include <stdlib.h>+#include <string.h>  #ifndef TRUE #define	TRUE	1@@ -95,7 +98,7 @@ }  /* find_local - find all IP addresses for this host */-+int find_local() {     struct ifconf ifc;@@ -153,7 +156,7 @@ }  /* from_local - determine whether request comes from the local system */-+int from_local(addr) struct sockaddr_in *addr; {diff -urN portmap_4/pmap_check.c portmap_4.new/pmap_check.c--- portmap_4/pmap_check.c	Sun Nov 21 11:59:01 1993+++ portmap_4.new/pmap_check.c	Tue Nov 30 01:19:37 1999@@ -34,7 +34,7 @@ #ifndef lint static char sccsid[] = "@(#) pmap_check.c 1.6 93/11/21 20:58:59"; #endif-+#include <unistd.h> #include <rpc/rpc.h> #include <rpc/pmap_prot.h> #include <syslog.h>@@ -66,6 +66,9 @@  /* A handful of macros for "readability". */ +/* coming from libwrap.a (tcp_wrappers) */+extern int hosts_ctl(char *daemon, char *name, char *addr, char *user);+ #define	good_client(a) hosts_ctl("portmap", "", inet_ntoa(a->sin_addr), "")  #define	legal_port(a,p) \@@ -104,6 +107,7 @@  /* check_default - additional checks for NULL, DUMP, GETPORT and unknown */ +int check_default(addr, proc, prog) struct sockaddr_in *addr; u_long  proc;@@ -121,7 +125,7 @@ }  /* check_privileged_port - additional checks for privileged-port updates */-+int check_privileged_port(addr, proc, prog, port) struct sockaddr_in *addr; u_long  proc;@@ -147,6 +147,6 @@  #ifdef LOOPBACK_SETUNSET-+int check_setunset(xprt, ludp_xprt, ltcp_xprt, proc, prog, port) SVCXPRT *xprt; SVCXPRT *ludp_xprt;@@ -173,6 +174,6 @@  #else-+int check_setunset(addr, proc, prog, port) struct sockaddr_in *addr; u_long  proc;@@ -160,7 +164,7 @@ }  /* check_callit - additional checks for forwarded requests */-+int check_callit(addr, proc, prog, aproc) struct sockaddr_in *addr; u_long  proc;@@ -213,13 +217,13 @@     };     struct proc_map *procp;     static struct proc_map procmap[] = {-	PMAPPROC_CALLIT, "callit",-	PMAPPROC_DUMP, "dump",-	PMAPPROC_GETPORT, "getport",-	PMAPPROC_NULL, "null",-	PMAPPROC_SET, "set",-	PMAPPROC_UNSET, "unset",-	0, 0,+	{ PMAPPROC_CALLIT, "callit"},+	{ PMAPPROC_DUMP, "dump"},+	{ PMAPPROC_GETPORT, "getport"},+	{ PMAPPROC_NULL, "null"},+	{ PMAPPROC_SET, "set"},+	{ PMAPPROC_UNSET, "unset"},+	{ 0, 0},     };      /*@@ -233,7 +237,7 @@  	if (prognum == 0) { 	    progname = "";-	} else if (rpc = getrpcbynumber((int) prognum)) {+	} else if ((rpc = getrpcbynumber((int) prognum))) { 	    progname = rpc->r_name; 	} else { 	    sprintf(progname = progbuf, "%lu", prognum);diff -urN portmap_4/pmap_dump.c portmap_4.new/pmap_dump.c--- portmap_4/pmap_dump.c	Thu Jun 11 13:53:16 1992+++ portmap_4.new/pmap_dump.c	Tue Nov 30 01:22:07 1999@@ -22,7 +22,7 @@ #include <rpc/pmap_prot.h>  static char *protoname();-+int main(argc, argv) int     argc; char  **argv;diff -urN portmap_4/pmap_set.c portmap_4.new/pmap_set.c--- portmap_4/pmap_set.c	Thu Jun 11 13:53:17 1992+++ portmap_4.new/pmap_set.c	Tue Nov 30 01:23:49 1999@@ -17,6 +17,9 @@ #include <rpc/rpc.h> #include <rpc/pmap_clnt.h> +int parse_line(char *buf, u_long *, u_long *, int *, unsigned *); ++int main(argc, argv) int     argc; char  **argv;@@ -42,7 +45,7 @@ }  /* parse_line - convert line to numbers */-+int parse_line(buf, prog, vers, prot, port) char   *buf; u_long *prog;diff -urN portmap_4/portmap.c portmap_4.new/portmap.c--- portmap_4/portmap.c	Fri May 31 06:52:59 1996+++ portmap_4.new/portmap.c	Tue Nov 30 01:01:32 1999@@ -83,6 +83,7 @@ #include <rpc/rpc.h> #include <rpc/pmap_prot.h> #include <stdio.h>+#include <unistd.h> #include <syslog.h> #include <netdb.h> #include <sys/socket.h>@@ -128,6 +129,7 @@  #include "pmap_check.h" +int main(argc, argv) 	int argc; 	char **argv;@@ -229,6 +231,7 @@ 	svc_run(); 	syslog(LOG_ERR, "run_svc returned unexpectedly"); 	abort();+	/* never reached */ }  #ifndef lint@@ -290,7 +293,7 @@ 		 */ 		/* remote host authorization check */ 		check_default(svc_getcaller(xprt), rqstp->rq_proc, (u_long) 0);-		if (!svc_sendreply(xprt, xdr_void, (caddr_t)0) && debugging) {+		if (!svc_sendreply(xprt, (xdrproc_t)xdr_void, (caddr_t)0) && debugging) { 			abort(); 		} 		break;@@ -299,7 +302,7 @@ 		/* 		 * Set a program,version to port mapping 		 */-		if (!svc_getargs(xprt, xdr_pmap, &reg))+		if (!svc_getargs(xprt, (xdrproc_t)xdr_pmap, (caddr_t)&reg)) 			svcerr_decode(xprt); 		else { 			/* reject non-local requests, protect priv. ports */@@ -341,7 +344,7 @@ 				ans = 1; 			} 		done:-			if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&ans)) &&+			if ((!svc_sendreply(xprt, (xdrproc_t)xdr_int, (caddr_t)&ans)) && 			    debugging) { 				(void) fprintf(stderr, "svc_sendreply\n"); 				abort();@@ -353,7 +356,7 @@ 		/* 		 * Remove a program,version to port mapping. 		 */-		if (!svc_getargs(xprt, xdr_pmap, &reg))+		if (!svc_getargs(xprt, (xdrproc_t)xdr_pmap, (caddr_t)&reg)) 			svcerr_decode(xprt); 		else { 			ans = 0;@@ -387,7 +390,7 @@ 					prevpml->pml_next = pml; 				free(t); 			}-			if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&ans)) &&+			if ((!svc_sendreply(xprt, (xdrproc_t)xdr_int, (caddr_t)&ans)) && 			    debugging) { 				(void) fprintf(stderr, "svc_sendreply\n"); 				abort();@@ -399,7 +402,7 @@ 		/* 		 * Lookup the mapping for a program,version and return its port 		 */-		if (!svc_getargs(xprt, xdr_pmap, &reg))+		if (!svc_getargs(xprt, (xdrproc_t)xdr_pmap, (caddr_t)&reg)) 			svcerr_decode(xprt); 		else { 			/* remote host authorization check */@@ -414,7 +417,7 @@ 				port = fnd->pml_map.pm_port; 			else 				port = 0;-			if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&port)) &&+			if ((!svc_sendreply(xprt, (xdrproc_t)xdr_int, (caddr_t)&port)) && 			    debugging) { 				(void) fprintf(stderr, "svc_sendreply\n"); 				abort();@@ -426,7 +429,7 @@ 		/* 		 * Return the current set of mapped program,version 		 */-		if (!svc_getargs(xprt, xdr_void, NULL))+		if (!svc_getargs(xprt, (xdrproc_t)xdr_void, NULL)) 			svcerr_decode(xprt); 		else { 			/* remote host authorization check */@@ -437,7 +440,7 @@ 			} else { 				p = pmaplist; 			}-			if ((!svc_sendreply(xprt, xdr_pmaplist,+			if ((!svc_sendreply(xprt, (xdrproc_t)xdr_pmaplist, 			    (caddr_t)&p)) && debugging) { 				(void) fprintf(stderr, "svc_sendreply\n"); 				abort();@@ -481,7 +484,7 @@ 	struct encap_parms *epp; { -	return (xdr_bytes(xdrs, &(epp->args), &(epp->arglen), ARGSIZE));+	return (xdr_bytes(xdrs, &(epp->args), (u_int *)&(epp->arglen), ARGSIZE)); }  struct rmtcallargs {@@ -585,7 +588,7 @@ 	timeout.tv_sec = 5; 	timeout.tv_usec = 0; 	a.rmt_args.args = buf;-	if (!svc_getargs(xprt, xdr_rmtcall_args, &a))+	if (!svc_getargs(xprt, (xdrproc_t)xdr_rmtcall_args, (caddr_t)&a)) 		return; 	/* host and service access control */ 	if (!check_callit(svc_getcaller(xprt), @@ -614,9 +617,9 @@ 			   au->aup_uid, au->aup_gid, au->aup_len, au->aup_gids); 		} 		a.rmt_port = (u_long)port;-		if (clnt_call(client, a.rmt_proc, xdr_opaque_parms, &a,-		    xdr_len_opaque_parms, &a, timeout) == RPC_SUCCESS) {-			svc_sendreply(xprt, xdr_rmtcall_result, (caddr_t)&a);+		if (clnt_call(client, a.rmt_proc, (xdrproc_t)xdr_opaque_parms, (caddr_t)&a,+		    (xdrproc_t)xdr_len_opaque_parms, (caddr_t)&a, timeout) == RPC_SUCCESS) {+			svc_sendreply(xprt, (xdrproc_t)xdr_rmtcall_result, (caddr_t)&a); 		} 		AUTH_DESTROY(client->cl_auth); 		clnt_destroy(client);+--------------------------------------------------------------------+| Ste'phane ERANIAN                       | Email eranian@hpl.hp.com || Hewlett-Packard Laboratories            |                          || 1501, Page Mill Road MS 1U-15           |                          || Palo  Alto, CA 94303-096                |                          || USA                                     |                          || Tel : (650) 857-7174                    |                          || Fax : (650) 857-5548                    |                          |+--------------------------------------------------------------------+

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -