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

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

?? security.c

?? Linux內核源代碼 為壓縮文件 是<<Linux內核>>一書中的源代碼
?? C
字號:
/*kHTTPd -- the next generationPermissions/Security functions*//**************************************************************** *	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 *	the Free Software Foundation; either version 2, or (at your option) *	any later version. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	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. * ****************************************************************/#include <linux/kernel.h>#include <linux/errno.h>#include <linux/malloc.h>#include <linux/net.h>#include <linux/sched.h>#include <linux/skbuff.h>#include <linux/smp_lock.h>#include <linux/un.h>#include <linux/unistd.h>#include <net/ip.h>#include <net/sock.h>#include <net/tcp.h>#include <asm/atomic.h>#include <asm/semaphore.h>#include <asm/processor.h>#include <asm/uaccess.h>#include <linux/file.h>#include "sysctl.h"#include "security.h"#include "prototypes.h"/*The basic security function answers "Userspace" when any one of the following conditions is met:1) The filename contains a "?" (this is before % decoding, all others are                                 after % decoding)2) The filename doesn't start with a "/"                                3) The file does not exist4) The file does not have enough permissions    (sysctl-configurable, default = worldreadble)5) The file has any of the "forbidden" permissions    (sysctl-configurable, default = execute, directory and sticky)6) The filename contains a string as defined in the "Dynamic" list.*/	/* Prototypes */static void DecodeHexChars(char *URL);static struct DynamicString *DynamicList=NULL;	/*The function "OpenFileForSecurity" returns either the "struct file" pointerof the file, or NULL. NULL means "let userspace handle it". */struct file *OpenFileForSecurity(char *Filename){	struct file *filp;	struct DynamicString *List;	umode_t permission;			EnterFunction("OpenFileForSecurity");	if (Filename==NULL)		return NULL;		if (strlen(Filename)>=256 ) return NULL;  /* Sanity check */		/* Rule no. 1  -- No "?" characters */#ifndef BENCHMARK		if (strchr(Filename,'?')!=NULL)		return NULL;	/* Intermediate step: decode all %hex sequences */		DecodeHexChars(Filename);	/* Rule no. 2  -- Must start with a "/" */			if (Filename[0]!='/')		return NULL;		#endif	/* Rule no. 3 -- Does the file exist ? */	filp = filp_open(Filename, O_RDONLY, 0);		if (IS_ERR(filp))		return NULL;#ifndef BENCHMARK			permission = filp->f_dentry->d_inode->i_mode;		/* Rule no. 4 : must have enough permissions */			if ((permission & sysctl_khttpd_permreq)==0)	{		if (filp!=NULL)			fput(filp);		filp=NULL;		return NULL;	}			/* Rule no. 5 : cannot have "forbidden" permission */			if ((permission & sysctl_khttpd_permforbid)!=0)	{		if (filp!=NULL)			fput(filp);		filp=NULL;		return NULL;	}			/* Rule no. 6 : No string in DynamicList can be a			substring of the filename */					List = DynamicList;		while (List!=NULL)	{		if (strstr(Filename,List->value)!=NULL)		{			if (filp!=NULL)				fput(filp);			filp=NULL;			return NULL;		}		List = List->Next;	}	#endif		LeaveFunction("OpenFileForSecurity - success");	return filp;}/* DecodeHexChars does the actual %HEX decoding, in place. In place is possible because strings only get shorter by this.*/static void DecodeHexChars(char *URL){	char *Source,*Dest;	int val,val2;		EnterFunction("DecodeHexChars");		Source = strchr(URL,'%');		if (Source==NULL) 		return;			Dest = Source;		while (*Source!=0)	{		if (*Source=='%')		{			Source++;			val = *Source;						if (val>'Z') val-=0x20;			val = val - '0';			if (val<0) val=0; 			if (val>9) val-=7;			if (val>15) val=15;						Source++;			val2 = *Source;						if (val2>'Z') val2-=0x20;			val2 = val2 - '0';			if (val2<0) val2=0; 			if (val2>9) val2-=7;			if (val2>15) val2=15;			*Dest=val*16+val2;		} else *Dest = *Source;		Dest++;		Source++;	}	*Dest=0;			LeaveFunction("DecodeHexChars");}void AddDynamicString(const char *String){	struct DynamicString *Temp;		EnterFunction("AddDynamicString");		Temp = (struct DynamicString*)kmalloc(sizeof(struct DynamicString),(int)GFP_KERNEL);		if (Temp==NULL) 		return;			memset(Temp->value,0,sizeof(Temp->value));	strncpy(Temp->value,String,sizeof(Temp->value)-1);		Temp->Next = DynamicList;	DynamicList = Temp;		LeaveFunction("AddDynamicString");}void GetSecureString(char *String){	struct DynamicString *Temp;	int max;		EnterFunction("GetSecureString");		*String = 0;		memset(String,0,255);		strncpy(String,"Dynamic strings are : -",255);	Temp = DynamicList;	while (Temp!=NULL)	{		max=253 - strlen(String) - strlen(Temp->value);		strncat(String,Temp->value,max);		max=253 - strlen(String) - 3;		strncat(String,"- -",max);		Temp = Temp->Next;	}			LeaveFunction("GetSecureString");}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97aⅴ精品视频一二三区| 欧美日韩一级大片网址| 亚洲激情中文1区| 日韩欧美不卡一区| 欧美亚洲丝袜传媒另类| 国产美女在线观看一区| 婷婷综合五月天| 亚洲欧洲三级电影| 国产亚洲精品中文字幕| 日韩欧美一级二级三级| 欧美性三三影院| 成人国产亚洲欧美成人综合网 | 日本不卡视频在线| 亚洲日本va午夜在线电影| 国产色婷婷亚洲99精品小说| 欧美一区二区三区免费视频| 在线一区二区三区四区| 99精品视频免费在线观看| 国产盗摄一区二区| 国产一区 二区| 精品一区二区久久久| 亚洲3atv精品一区二区三区| 一区二区三区产品免费精品久久75| 久久精品视频一区二区三区| 精品免费日韩av| 欧美tickling挠脚心丨vk| 欧美喷水一区二区| 欧美日韩精品综合在线| 在线观看一区二区视频| 91丨九色丨尤物| caoporn国产一区二区| 国产成人av电影| 国产a区久久久| 国产ts人妖一区二区| 国产一区二区美女| 国产一区二区调教| 国产一区二区不卡老阿姨| 精品一区二区日韩| 国产综合色视频| 国产传媒日韩欧美成人| 国产不卡在线视频| 成人黄色在线看| 91女厕偷拍女厕偷拍高清| 色婷婷狠狠综合| 欧美色爱综合网| 日韩一区二区免费在线观看| 欧美成人精品二区三区99精品| 精品国产免费人成电影在线观看四季| 精品国产污污免费网站入口 | 欧美精品 国产精品| 欧美日韩精品二区第二页| 欧美精品久久久久久久久老牛影院| 制服丝袜中文字幕亚洲| 精品久久人人做人人爱| 国产日韩欧美亚洲| 亚洲三级在线播放| 亚洲123区在线观看| 久久av资源网| www.亚洲激情.com| 欧美在线不卡一区| 日韩精品一区国产麻豆| 国产午夜久久久久| 亚洲男人的天堂在线aⅴ视频| 亚洲午夜av在线| 免费人成网站在线观看欧美高清| 国产一区二区三区在线看麻豆| 国产jizzjizz一区二区| 色综合欧美在线| 欧美日本免费一区二区三区| 精品久久久久一区二区国产| 国产精品网站在线播放| 亚洲一区二区欧美| 久久99久久久久久久久久久| 国产福利一区二区| 欧美日韩免费一区二区三区| 26uuu久久天堂性欧美| 亚洲婷婷在线视频| 看国产成人h片视频| 色综合久久88色综合天天免费| 91麻豆精品久久久久蜜臀| 欧美国产综合色视频| 亚洲444eee在线观看| 成人午夜免费视频| 在线综合+亚洲+欧美中文字幕| 中文字幕免费不卡| 日韩成人伦理电影在线观看| 国产不卡一区视频| 欧美一区二区三区免费在线看| 国产精品久久久久7777按摩| 日本成人在线一区| 99re在线精品| 久久影院视频免费| 天堂av在线一区| 北条麻妃一区二区三区| 日韩精品一区在线| 亚洲福利一区二区| av亚洲产国偷v产偷v自拍| 日韩一级黄色大片| 一区二区三区.www| 成人午夜精品在线| 日韩欧美中文一区| 亚洲在线免费播放| jlzzjlzz亚洲日本少妇| 久久免费精品国产久精品久久久久| 亚洲一区二区三区小说| 成人免费av网站| 精品国产伦一区二区三区观看体验| 一区二区三区在线免费视频| 成人av网站在线观看| 精品盗摄一区二区三区| 午夜久久久影院| 91行情网站电视在线观看高清版| 国产精品全国免费观看高清| 国产在线精品一区在线观看麻豆| 欧美色综合久久| 亚洲三级免费电影| av激情亚洲男人天堂| 国产亚洲欧洲997久久综合| 精品亚洲成a人| 日韩欧美国产午夜精品| 午夜欧美视频在线观看| 欧美性一二三区| 亚洲综合视频网| 在线一区二区视频| 一区二区三区欧美视频| 波多野结衣精品在线| 国产精品乱人伦| 国产jizzjizz一区二区| 国产欧美日韩另类一区| 国产一区二区h| 久久精品亚洲精品国产欧美 | 在线观看av不卡| 一区二区免费在线| 色偷偷一区二区三区| 亚洲精品视频在线| 91黄视频在线观看| 婷婷国产v国产偷v亚洲高清| 欧美美女直播网站| 免费观看在线综合| 精品少妇一区二区三区日产乱码 | 欧美精品在线观看播放| 无码av免费一区二区三区试看| 欧美精品xxxxbbbb| 九九九久久久精品| 欧美精品一区二区三区很污很色的| 麻豆freexxxx性91精品| 精品成人一区二区三区四区| 国内精品第一页| 国产精品每日更新| 在线观看免费视频综合| 视频在线在亚洲| 2欧美一区二区三区在线观看视频| 国产麻豆一精品一av一免费 | 亚洲视频资源在线| 欧美视频一区二区三区| 麻豆国产精品777777在线| 久久久国产精品麻豆| 91免费国产视频网站| 亚洲成人免费影院| 日韩免费高清电影| 99这里只有久久精品视频| 亚洲韩国一区二区三区| 欧美成人精精品一区二区频| 成人毛片在线观看| 亚洲成人福利片| 久久久99精品免费观看| 99精品国产99久久久久久白柏| 一卡二卡欧美日韩| 欧美一级黄色录像| 成人黄动漫网站免费app| 亚洲国产视频一区| 久久久噜噜噜久噜久久综合| 91网站最新地址| 美女在线观看视频一区二区| 国产精品久久久久久久岛一牛影视 | 在线成人免费观看| 色狠狠一区二区| 亚洲成人av免费| 欧美一卡2卡3卡4卡| 高清国产午夜精品久久久久久| 亚洲美女免费视频| 欧美xxxxx牲另类人与| av中文字幕一区| 日av在线不卡| 国产精品第一页第二页第三页| 欧美裸体一区二区三区| 成人黄色777网| 美女网站一区二区| 亚洲人亚洲人成电影网站色| 欧美一区二区三区在线观看 | 亚洲午夜国产一区99re久久| 久久久久国产精品免费免费搜索| 色呦呦网站一区| 国产成人精品亚洲日本在线桃色| 亚洲一区二区三区国产| 国产精品麻豆视频| 久久午夜色播影院免费高清 | 国产精品久久三区| 精品国产麻豆免费人成网站| 欧美日韩亚洲综合在线|