30 lines
859 B
Diff
30 lines
859 B
Diff
|
Fix CVE-2017-8779:
|
||
|
|
||
|
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779
|
||
|
|
||
|
Patch copied from the bug reporter's 3rd-party repository:
|
||
|
|
||
|
https://github.com/guidovranken/rpcbomb/blob/master/rpcbind_patch.txt
|
||
|
|
||
|
diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
|
||
|
index 5862c26..e11f61b 100644
|
||
|
--- a/src/rpcb_svc_com.c
|
||
|
+++ b/src/rpcb_svc_com.c
|
||
|
@@ -48,6 +48,7 @@
|
||
|
#include <rpc/rpc.h>
|
||
|
#include <rpc/rpcb_prot.h>
|
||
|
#include <rpc/svc_dg.h>
|
||
|
+#include <rpc/rpc_com.h>
|
||
|
#include <netconfig.h>
|
||
|
#include <errno.h>
|
||
|
#include <syslog.h>
|
||
|
@@ -432,7 +433,7 @@ rpcbproc_taddr2uaddr_com(void *arg, struct svc_req *rqstp /*__unused*/,
|
||
|
static bool_t
|
||
|
xdr_encap_parms(XDR *xdrs, struct encap_parms *epp)
|
||
|
{
|
||
|
- return (xdr_bytes(xdrs, &(epp->args), (u_int *) &(epp->arglen), ~0));
|
||
|
+ return (xdr_bytes(xdrs, &(epp->args), (u_int *) &(epp->arglen), RPC_MAXDATASIZE));
|
||
|
}
|
||
|
|
||
|
/*
|