亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pmap_check.c

?? 當你重新編譯了EM85XX的交叉編譯工具以支持SUNRPC時
?? C
字號:
 /*  * pmap_check - additional portmap security.  *   * Always reject non-local requests to update the portmapper tables.  *   * Refuse to forward mount requests to the nfs mount daemon. Otherwise, the  * requests would appear to come from the local system, and nfs export  * restrictions could be bypassed.  *   * Refuse to forward requests to the nfsd process.  *   * Refuse to forward requests to NIS (YP) daemons; The only exception is the  * YPPROC_DOMAIN_NONACK broadcast rpc call that is used to establish initial  * contact with the NIS server.  *   * Always allocate an unprivileged port when forwarding a request.  *   * If compiled with -DCHECK_PORT, require that requests to register or  * unregister a privileged port come from a privileged port. This makes it  * more difficult to replace a critical service by a trojan. Also, require  * that requests to set/unset the NFSD port come form a privileged port.  *   * If compiled with -DHOSTS_ACCESS, reject requests from hosts that are not  * authorized by the /etc/hosts.{allow,deny} files. The local system is  * always treated as an authorized host. The access control tables are never  * consulted for requests from the local system, and are always consulted  * for requests from other hosts. Access control is based on IP addresses  * only; attempts to map an address to a host name might cause the  * portmapper to hang.  *   * Author: Wietse Venema (wietse@wzv.win.tue.nl), dept. of Mathematics and  * Computing Science, Eindhoven University of Technology, The Netherlands.  */#include <sys/types.h>#include <unistd.h>#include <rpc/rpc.h>#include <rpc/pmap_prot.h>#include <syslog.h>#include <netdb.h>#include <sys/signal.h>#ifdef SYSV40#include <netinet/in.h>#include <rpc/rpcent.h>#endif#include <tcpd.h>#include <arpa/inet.h>#include <grp.h>#include "pmap_check.h"/* Explicit #defines in case the include files are not available. */#define NFSPROG		((u_long) 100003)#define MOUNTPROG	((u_long) 100005)#define	YPXPROG		((u_long) 100069)#define YPPROG          ((u_long) 100004)#define YPPROC_DOMAIN_NONACK ((u_long) 2)#define MOUNTPROC_MNT	((u_long) 1)#define NFS_PORT	2049static void logit(int severity, struct sockaddr_in *addr,		  u_long procnum, u_long prognum, char *text);static void toggle_verboselog(int sig);int     verboselog __attribute ((visibility ("hidden"))) = 0;int     allow_severity __attribute ((visibility ("hidden"))) = LOG_INFO;int     deny_severity __attribute ((visibility ("hidden"))) = LOG_WARNING;/* A handful of macros for "readability". */#define reserved_port(p) (IPPORT_RESERVED/2 < (p) && (p) < IPPORT_RESERVED)#define unreserved_port(p) (IPPORT_RESERVED <= (p) && (p) != NFS_PORT)#define	legal_port(a,p) \  (reserved_port(ntohs((a)->sin_port)) || unreserved_port(p))#define log_bad_port(addr, proc, prog) \  logit(deny_severity, addr, proc, prog, ": request from unprivileged port")#define log_bad_host(addr, proc, prog) \  logit(deny_severity, addr, proc, prog, ": request from unauthorized host")#define log_bad_owner(addr, proc, prog) \  logit(deny_severity, addr, proc, prog, ": request from non-local host")#define	log_no_forward(addr, proc, prog) \  logit(deny_severity, addr, proc, prog, ": request not forwarded")#define log_client(addr, proc, prog) \  logit(allow_severity, addr, proc, prog, "")/* check_startup - additional startup code */void check_startup(void){    /*     * Give up root privileges so that we can never allocate a privileged     * port when forwarding an rpc request.     */    setgid(daemon_gid);    setgroups(0, NULL);    if (setuid(daemon_uid) == -1) {	syslog(LOG_ERR, "setuid(1) failed: %m");	exit(1);    }    (void) signal(SIGINT, toggle_verboselog);}#ifdef HOSTS_ACCESSstatic intgood_client(struct sockaddr_in *addr){	if (hosts_ctl("portmap", "", inet_ntoa(addr->sin_addr), ""))		return 1;#ifdef ENABLE_DNS{	struct hostent *hp;	char **sp;	char *tmpname;	/* Check the hostname. */	hp = gethostbyaddr ((const char *) &(addr->sin_addr),			    sizeof (addr->sin_addr), AF_INET);	if (!hp)		return 0;	/* must make sure the hostent is authoritative. */	tmpname = alloca (strlen (hp->h_name) + 1);	strcpy (tmpname, hp->h_name);	hp = gethostbyname(tmpname);	if (hp) {		/* now make sure the "addr->sin_addr" is on the list */		for (sp = hp->h_addr_list ; *sp ; sp++) {			if (memcmp(*sp, &(addr->sin_addr), hp->h_length)==0)				break;		}		if (!*sp)			/* it was a FAKE. */			return 0;	} else		/* never heard of it. misconfigured DNS? */		return 0;	/* Check the official name first. */	if (hosts_ctl("portmap", "", hp->h_name, ""))		return 1;	/* Check aliases. */	for (sp = hp->h_aliases; *sp ; sp++) {		if (hosts_ctl("portmap", "", *sp, ""))			return 1;	}}#endif /* ENABLE_DNS */	return 0;}#endif /* HOSTS_ACCESS *//* check_default - additional checks for NULL, DUMP, GETPORT and unknown */intcheck_default(struct sockaddr_in *addr, u_long  proc,	      u_long  prog){#ifdef HOSTS_ACCESS    if (!(from_local(addr) || good_client(addr))) {	log_bad_host(addr, proc, prog);	return (FALSE);    }#endif    if (verboselog)	log_client(addr, proc, prog);    return (TRUE);}/* check_privileged_port - additional checks for privileged-port updates */intcheck_privileged_port(struct sockaddr_in *addr, u_long  proc,		      u_long  prog, u_long  port){#ifdef CHECK_PORT    if (!legal_port(addr, port)) {	log_bad_port(addr, proc, prog);	return (FALSE);    }#endif    return (TRUE);}/* check_setunset - additional checks for update requests */#ifdef LOOPBACK_SETUNSETintcheck_setunset(SVCXPRT *xprt, SVCXPRT *ludp_xprt, SVCXPRT *ltcp_xprt,	       u_long  proc, u_long  prog, u_long  port){    struct sockaddr_in *addr = svc_getcaller(xprt);    if (xprt != ludp_xprt && xprt != ltcp_xprt) {#ifdef HOSTS_ACCESS	(void) good_client(addr);		/* because of side effects */#endif	log_bad_owner(addr, proc, prog);	return (FALSE);    }    if (port && !check_privileged_port(addr, proc, prog, port))	return (FALSE);    if (verboselog)	log_client(addr, proc, prog);    return (TRUE);}#elseintcheck_setunset(struct sockaddr_in *addr, u_long  proc,	       u_long  prog, u_long  port){    if (!from_local(addr)) {#ifdef HOSTS_ACCESS	(void) good_client(addr);		/* because of side effects */#endif	log_bad_owner(addr, proc, prog);	return (FALSE);    }    if (port && !check_privileged_port(addr, proc, prog, port))	return (FALSE);    if (verboselog)	log_client(addr, proc, prog);    return (TRUE);}#endif/* check_callit - additional checks for forwarded requests */intcheck_callit(struct sockaddr_in *addr, u_long  proc,	     u_long  prog, u_long  aproc){#ifdef HOSTS_ACCESS    if (!(from_local(addr) || good_client(addr))) {	log_bad_host(addr, proc, prog);	return (FALSE);    }#endif    if (prog == PMAPPROG || prog == NFSPROG || prog == YPXPROG ||	(prog == MOUNTPROG && aproc == MOUNTPROC_MNT) ||	(prog == YPPROG && aproc != YPPROC_DOMAIN_NONACK)) {	log_no_forward(addr, proc, prog);	return (FALSE);    }    if (verboselog)	log_client(addr, proc, prog);    return (TRUE);}/* toggle_verboselog - toggle verbose logging flag */static void toggle_verboselog(int sig){    (void) signal(sig, toggle_verboselog);    verboselog = !verboselog;}/* logit - report events of interest via the syslog daemon */static void logit(int severity, struct sockaddr_in *addr,		  u_long procnum, u_long prognum, char *text){    char   *procname;    char    procbuf[4 * sizeof(u_long)];    char   *progname;    char    progbuf[4 * sizeof(u_long)];    struct rpcent *rpc;    struct proc_map {	u_long  code;	char   *proc;    };    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} ,    };    /*     * Fork off a process or the portmap daemon might hang while     * getrpcbynumber() or syslog() does its thing.     */    if (fork() == 0) {	/* Try to map program number to name. */	if (prognum == 0) {	    progname = "";	} else if ((rpc = getrpcbynumber((int) prognum))) {	    progname = rpc->r_name;	} else {	    sprintf(progname = progbuf, "%lu", prognum);	}	/* Try to map procedure number to name. */	for (procp = procmap; procp->proc && procp->code != procnum; procp++)	     /* void */ ;	if ((procname = procp->proc) == 0)	    sprintf(procname = procbuf, "%lu", (u_long) procnum);	/* Write syslog record. */	syslog(severity, "connect from %s to %s(%s)%s",	       inet_ntoa(addr->sin_addr), procname, progname, text);	exit(0);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人欧美一区二区三区1314| 欧美三级一区二区| 久久国产精品无码网站| 亚洲午夜精品在线| 伊人性伊人情综合网| 最近中文字幕一区二区三区| 国产精品沙发午睡系列990531| 日韩亚洲欧美高清| 日韩免费在线观看| 精品久久99ma| 日本一二三四高清不卡| 国产精品免费视频一区| 亚洲手机成人高清视频| 一级做a爱片久久| 亚洲高清三级视频| 日韩av一区二区三区四区| 美洲天堂一区二卡三卡四卡视频| 老汉av免费一区二区三区| 精品一区二区久久| 成人午夜电影网站| 在线观看日韩高清av| 欧美午夜精品久久久久久孕妇| 欧美日韩的一区二区| 91精品国产高清一区二区三区| 精品精品欲导航| 亚洲免费在线观看| 天天综合色天天综合| 国产一区二区不卡老阿姨| 岛国精品一区二区| 欧美日韩一级视频| 久久夜色精品国产欧美乱极品| 国产精品毛片大码女人| 亚洲成人第一页| 国产精品一区免费视频| 一本色道综合亚洲| 精品国产91乱码一区二区三区| 中文字幕不卡在线| 三级在线观看一区二区| 国产成人精品www牛牛影视| 色老综合老女人久久久| 日韩免费看的电影| 亚洲品质自拍视频| 免费的国产精品| av不卡在线观看| 26uuuu精品一区二区| 亚洲乱码日产精品bd| 九色|91porny| 欧美视频在线观看一区二区| 国产午夜精品久久久久久久| 亚洲aaa精品| av资源站一区| 国产日韩欧美激情| 麻豆国产精品一区二区三区| 91女厕偷拍女厕偷拍高清| 精品国产免费久久| 午夜欧美视频在线观看| 99国产精品久久久久| 久久久99久久| 蜜桃av一区二区在线观看| 欧美日韩久久一区| 国产精品高潮呻吟久久| 国产一区二区久久| 欧美v日韩v国产v| 视频一区国产视频| 欧美日韩午夜精品| 洋洋成人永久网站入口| 972aa.com艺术欧美| 国产女主播一区| 国产成人综合亚洲91猫咪| 欧美一区二区精美| 日本不卡123| 欧美一区二区三区四区五区| 亚洲不卡在线观看| 欧美视频日韩视频| 亚洲美女淫视频| 色天天综合色天天久久| 亚洲欧美在线另类| 91在线视频免费91| 亚洲精品乱码久久久久久黑人 | 日韩电影在线观看网站| 欧美视频精品在线观看| 偷拍自拍另类欧美| 91精品国产综合久久久久久漫画| 午夜亚洲福利老司机| 欧美日韩三级一区二区| 视频一区二区不卡| 精品国产91亚洲一区二区三区婷婷 | 亚洲精品午夜久久久| 99精品视频在线观看| 一区二区三区在线高清| 色偷偷88欧美精品久久久| 亚洲美女视频在线| 欧美日韩视频不卡| 国产一区不卡视频| 成人欧美一区二区三区白人| 欧洲另类一二三四区| 婷婷久久综合九色综合绿巨人| 在线综合+亚洲+欧美中文字幕| 首页综合国产亚洲丝袜| 精品国产91洋老外米糕| 成人av在线播放网址| 亚洲曰韩产成在线| 7777精品伊人久久久大香线蕉经典版下载 | 欧美伊人久久久久久午夜久久久久| 亚洲成人动漫av| 国产亚洲综合在线| 欧美性xxxxxxxx| 国产精品一区二区三区网站| 中文字幕中文字幕一区二区| 欧美日韩欧美一区二区| 国产美女主播视频一区| 亚洲精品高清视频在线观看| 欧美精品123区| 成人a免费在线看| 香蕉成人啪国产精品视频综合网| 久久久亚洲午夜电影| 色婷婷国产精品| 国产.欧美.日韩| 日本视频一区二区| 成人免费小视频| 欧美成人vr18sexvr| 色8久久人人97超碰香蕉987| 久久99精品网久久| 亚洲一二三区在线观看| 日本一区二区三区四区在线视频| 欧美三级三级三级爽爽爽| 99久久免费精品高清特色大片| 丝袜美腿成人在线| 亚洲一本大道在线| 亚洲色欲色欲www在线观看| 欧美tickling网站挠脚心| 欧美日韩中文精品| av电影在线观看完整版一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品亚洲人成人网| 中文字幕中文字幕一区二区| 久久夜色精品一区| 精品日产卡一卡二卡麻豆| 色av一区二区| 色av成人天堂桃色av| av电影在线观看一区| 成人免费的视频| 国产一区二区在线免费观看| 日韩有码一区二区三区| 亚洲va韩国va欧美va| 一区二区三区在线观看国产| 成人免费一区二区三区视频| 国产欧美一区二区精品性色| 久久综合色一综合色88| 日韩女优电影在线观看| 日韩写真欧美这视频| 日韩视频免费直播| 日韩精品一区二区三区蜜臀| 555夜色666亚洲国产免| 7777精品伊人久久久大香线蕉经典版下载 | 久99久精品视频免费观看| 日韩avvvv在线播放| 免费一区二区视频| 蜜臀国产一区二区三区在线播放 | 国产精品人妖ts系列视频| 国产欧美日韩在线视频| 中文字幕二三区不卡| 自拍av一区二区三区| 亚洲乱码国产乱码精品精小说 | 久久久国产一区二区三区四区小说 | 亚洲女女做受ⅹxx高潮| 一区二区在线观看视频| 一区二区三区在线视频观看58 | 亚洲欧美日本韩国| 一区二区三区在线免费视频 | 久久久精品人体av艺术| 久久精品在线免费观看| 日本一区二区免费在线观看视频 | 日韩中文字幕区一区有砖一区 | 亚洲午夜激情网站| 日韩国产欧美视频| 国产在线观看免费一区| 成人理论电影网| 精品视频免费看| 日韩视频免费观看高清在线视频| 精品免费日韩av| 国产精品久99| 日韩国产精品久久| 国产伦精一区二区三区| 色综合久久久久久久久久久| 8v天堂国产在线一区二区| 欧美本精品男人aⅴ天堂| 国产精品成人一区二区艾草| 亚洲电影欧美电影有声小说| 国产一区二区不卡老阿姨| 97精品国产露脸对白| 91精品婷婷国产综合久久性色| 国产亚洲欧美日韩日本| 亚洲精品五月天| 国产一区二区三区最好精华液 | 日本成人超碰在线观看| 99久久久久免费精品国产 | 日韩你懂的在线播放| 1024成人网| 国产酒店精品激情|