3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C和C++安全编码笔记:整数安全

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C和C++安全编码笔记:整数安全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

5.1 整數安全導論:整數由包括0的自然數(0, 1, 2, 3, …)和非零自然數的負數(-1, -2, -3, …)構成。

5.2 整數數據類型:整數類型提供了整數數學集合的一個有限子集的模型。一個具有整數類型的對象的值是附著在這個對象上的數學值。一個具有整數類型的對象的值的表示方式(representation)是在為該對象分配的存儲空間中該值的特定位模式編碼。

在C中每個整數類型的對象需要一個固定的存儲字節數。<limits.h>頭文件中的常量表達式CHAR_BIT,給出了一個字節中的位數,它必須至少為8,但可能會更大,這取決于具體的實現。除unsigned char型外,不是所有的位都必須用來表示值,未使用的位被稱為填充(padding)。

標準的整數類型由一組有符號的整數類型和相應的無符號整數類型組成。

無符號整數類型:C要求無符號整數類型值使用無偏移的純二進制系統表示。無符號整數是計數器的自然選擇。標準的無符號整數類型(按照它們的長度非遞減排序)是:unsigned char、unsigned short int、unsigned int、unsigned long int、unsigned long long int,關鍵字int可以省略,除非它是唯一存在的整數類型的關鍵字。

特定于編譯器和平臺的整數極值記錄在<limits.h>頭文件中。牢記這些值都是特定于平臺的。出于可移植性的考慮,在代碼中應該使用具名常量而不是實際的值

回繞:涉及無符號操作數的計算永遠不會溢出,因為不能用結果為無符號整數類型表示的結果值被該類型可以表示的最大值加1之和取模減(reduced modulo)。因為回繞,一個無符號整數表達式永遠無法求出小于零的值。

// 回繞:涉及無符號操作數的計算永遠不會溢出
void test_integer_security_wrap_around()
{unsigned int ui = UINT_MAX; fprintf(stdout, "ui value 1: %u\n", ui); // 4294967295ui++; fprintf(stdout, "ui value 2: %u\n", ui); // 0ui = 0; fprintf(stdout, "ui value 3: %u\n", ui); // 0ui--; fprintf(stdout, "ui value 4: %u\n", ui); // 4294967295//for (unsigned i = n; --i >= 0; ) // 此循環將永遠不會終止unsigned int i = 0, j = 0, sum = 0;// ... 對i, j, sum進行一些賦值運算操作if (sum + i > UINT_MAX) { } // 不會發生,因為sum+i回繞了if (i > UINT_MAX - sum) { } // 好很多if (sum - j < 0) { } // 不會發生,因為sum-j回繞了if (j > sum) { } // 正確
}

除非使用<stdint.h>中明確指定寬度(exact-width)的類型,否則回繞使用的寬度取決于實現,這意味著結果會因平臺而異。

有符號整數類型:有符號整數用于表示正值和負值,其值的范圍取決于為該類型分配的位數及其表示方式。在C中,除了_Bool類型以外,每種無符號類型都有一種對應的占用相同存儲空間的有符號類型。標準的有符號整數類型(按照長度非遞減排序,例如,long long int不能短于long int)包括如下類型:signed char、short int、int、long int、long long int,除了char類型,signed可以忽略(無修飾的char的表現要么如同unsigned char,要么如同signed char,這取決于實現,并且出于歷史原因,它被視為一個單獨的類型)。int可以省略,除非它是唯一存在的關鍵字。

所有足夠小的非負值在對應的有符號和無符號類型中有同樣的表示方式。一個稱為符號位的位被當作最高位,用于指示所表示的值是否為負。C標準允許的負數表示方法有三種,分別是原碼表示法(sign and magnitude)、反碼表示法(one’s complement)和補碼表示法(two’s complement)

(1).原碼表示法:符號位表示值為負(符號位設置為1)還是為正(符號位設置為0),其它值位(非填充)表示以純二進制表示法(與無符號類型相同)表示的該值的幅值。若要取一個原碼的相反數,只要改變符號位。例如,在純二進制表示法或原碼中,二進制數0000101011等于十進制數43,要取該值的相反數,只要設置符號位:二進制數1000101011等于十進制數-43。

(2).反碼表示法:符號位具有權數-(2^(N-1) - 1),其它值位的權數與無符號類型相同。例如,在反碼中,二進制數1111010100等于十進制數-43。假定寬度是10位,符號位具有權數-(2^9 - 1)即-511,其余位等于468,于是468-511=-43。若要取一個反碼的相反數,需要改變每一位(包括符號位)

(3).補碼表示法:符號位具有權數-(2^(N-1)),其它值位的權數與無符號類型相同。例如,在補碼中,二進制數1111010101等于十進制數-43.假定寬度是10位,符號位具有權數-(2^9)即-512,其余位等于469,于是469-512=-43.若要取一個補碼的相反數,首先構造反碼的相反數,然后再加1(在需要時進位)

對于數學值0,原碼和反碼都有兩種表示方式:正常0和負0(negative zero)。邏輯操作可能產生負0,但任何算術操作都不允許結果是負0,除非其中一個操作數具有一個負0表示方式。下表展示了假定在10位寬并忽略填充位時,一些有趣值的原碼、反碼和補碼表示:在使用補碼表示法的計算機上,有符號整數的取值范圍是-2^(N-1) ~ 2^(N-1) - 1。當使用反碼表示法和原碼表示法時,其取值范圍的下界變成-2^(N-1) + 1,而上界則保持不變。

有符號整數的取值范圍:下表中的”最小值”列確定每個標準有符號整數類型保證的可移植范圍。這些幅值被實現定義的具有相同符號的幅值所取代,如那些為x86-32架構所示的幅值。C標準要求標準有符號類型的最小寬度分別是:signed char(8)、short(16)、int(16)、long(32)、long long(64)。一個給定實現的實際寬度可以用<limits.h>中定義的最大可表示值作參考。這些類型對象的大小(存儲的字節數)可以由sizeof(typename)確定,這個大小包含填充位(如果有的話)。一個整數類型的最小值和最大值取決于該類型的表示方式、符號性和寬度。

整數溢出:當一個有符號整數運算的結果值不能用結果類型表示時就會發生溢出。在C中有符號整數溢出是未定義的行為,從而允許實現默默地回繞(最常見的行為)、陷阱,或兩者兼而有之。用補碼表示的一個給定類型最小負值的相反數不能以那種類型表示

// 有符號整數溢出
void test_integer_security_overflow()
{int i = INT_MAX; // 2147483647, int最大值i++; fprintf(stdout, "i = %d\n", i); // -2147483648, int最小值i = INT_MIN; // -2147483648, int最小值i--; fprintf(stdout, "i = %d\n", i); // 2147483647, int最大值std::cout << "abs(INT_MIN): " << std::abs(INT_MIN) << std::endl; // -2147483648// 因為二進制補碼表示是不對稱的,數值0被表示為”正”數,所以用補碼表示的一個給定類型最小負值的相反數不能以那種類型表示// 對最小的負值而言,結果是未定義的或錯誤的#define abs(n) ((n) < 0 ? -(n) : (n))#undef abs
}

字符類型:在char型用于數值時僅使用明確的signed char或unsigned char。建議僅使用signed char和unsigned char類型存儲和使用小數值(也就是范圍分別在SCHAR_MIN和SCHAR_MAX之間,或0和UCHAR_MAX之間的值),因為這是可移植的保證數據的符號字符類型的唯一方式。平凡的char不應該被用來存儲數值,因為編譯器有定義char的自由,使其要么與signed char,要么與unsigned char具有相同的范圍、表示和行為。

// 字符類型
void test_integer_security_char()
{
{// char類型的變量c可能是有符號或無符號的// 初始值200(它具有signed char類型)無法在(有符號的)char類型中表示(這是未定義的行為)// 許多編譯器將用標準的由無符號轉換到有符號的模字大小(modulo-word-size)規則把200轉換為-56char c = 200;int i = 1000;fprintf(stdout, "i/c = %d\n", i / c); // 在windows/linux上會輸出-17, 1000/-56=-17
}{// 聲明unsigned char型變量c,使后面的除法操作與char的符號性無關,因此它有一個可預見的結果unsigned char c = 200;int i = 1000;fprintf(stdout, "i/c = %d\n", i / c); // 5
}
}

數據模型:對于一個給定的編譯器,數據模型定義了為標準數據類型分配的大小。這些數據模型通常使用一個XXXn的模式命名,其中每個X都指一個C類型,而n指的是大小(通常為32或64),通常命名為:ILP64:int、long和指針類型是64位寬;LP32:long和指針是32位寬。

其它整數類型:C也在標準頭文件<stdint.h>、<stdtypes.h>和<stddef.h>中定義了其它整數類型。這些類型包括擴展的整數類型(extended integer type),它們是可選的、由實現定義的、完全支持的擴展,與標準的整數類型一起,組成整數類型的一般類。標準頭文件中諸如whatever_t定義的標識符都是typedef(類型定義),也就是說,它們是現有類型的同義詞,而不是新類型。

size_t:是無符號整數類型的sizeof運算符的結果,它在標準頭文件<stddef.h>中被定義。size_t類型的變量保證有足夠的精度來表示一個對象的大小。size_t的最大值由SIZE_MAX宏指定。

ptrdiff_t:是一種有符號整數類型,它表示兩個指針相減的結果,并被定義在標準頭文件<stddef.h>中。當兩個指針相減時,其結果是兩個數組元素的下標之差。其結果的大小是實現定義的,且它的類型(一種有符號整數類型)是ptrdiff_t。ptrdiff_t的下限和上限分別由PRTDIFF_MIN和PTRDIFF_MAX定義。

void test_integer_security_ptrdiff_t()
{int i = 5, j = 6;typedef int T;T *p = &i, *q = &j;ptrdiff_t d = p - q;fprintf(stdout, "pointer diff: %lld\n", d);fprintf(stdout, "sizeof(ptrdiff_t): %d\n", sizeof(ptrdiff_t)); // 8
}

intmax_t和uintmax_t:是具有最大寬度的整數類型,它們可以表示任何其它具有相同符號性的整數類型所能表示的任何值,允許在程序員定義的整數類型(相同符號性)與intmax_t和uintmax_t類型之間進行轉換。

void test_integer_security_intmax_t()
{typedef unsigned long long mytypedef_t; // 假設mytypedef_t是個128位的無符號整數,其實它并不是fprintf(stdout, "mytypedef_t length: %d\n", sizeof(mytypedef_t));mytypedef_t x = 0xffff;uintmax_t temp;temp = x; // 始終是安全的mytypedef_t x2 = 0xffffffffffffffff;fprintf(stdout, "x2: %ju\n", (uintmax_t)x2); // 將保證打印正確的x2值,無論它的長度是多少
}

格式化I/O函數可用于輸入和輸出最大寬度的整數類型值。在格式字符串中的j長度修飾符表明以下d、i、o、u、x、X或n轉換說明符將適用于一個類型為intmax_t或unitmax_t的參數。

intptr_t和uintptr_t:C標準不保證存在一個整數類型,它大到足以容納一個指向對象的指針。然而,如果確實存在這樣的類型,那么它的有符號版本稱為intptr_t,它的無符號版本稱為uintptr_t。這些類型的算術運算并不保證產生一個有用的值。

獨立于平臺的控制寬度的整數類型:C語言在頭文件<stdint.h>和<inttypes.h>中引入了整數類型,它為程序員提供typedef以便他們更好地控制寬度。這些整數類型是實現定義的,并包括以下幾種類型:

(1).int#_t、uint#_t:其中#代表一個確切的寬度,如int8_t、uint32_t。

(2).int_least#_t、uint_least#_t:其中#代表寬度值,如int_least32_t、uint_least16_t.

(3).int_fast#_t、uint_fast#_t:其中#代表最快的整數類型寬度的值,如int_fast16_t、uint_fast64_t。

頭文件<stdint.h>還為擴展類型定義了表示相應的最大值(對于有符號類型,還有最小值)的常數宏。

特定于平臺的整數類型:除了在C標準中定義的整數類型,供應商通常還定義了特定于平臺的整數類型。例如,Microsoft Windows API定義了大量的整數類型,包括__int8、__int16、BOOL、CHAR、LONG64等。

5.3 整數轉換

轉換整數:轉換是一種用于表示賦值、類型強制轉換或者計算的結果值的底層數據類型的改變。從具有某個寬度的類型向一種具有更大寬度的類型轉換,通常會保留數學值。然而,相反方向的轉換很容易導致高位的損失(涉及有符號整數類型時甚至會更糟),除非該值的幅值一直足夠小,可以被正確地表示。轉換是強制轉換時顯式發生的或作為一個操作的需要而隱式發生的。雖然隱式轉換簡化了編程,但也可能會導致數據丟失或錯誤解釋。

C標準規定了C編譯器應該如何處理轉換操作,包括:整數類型提升(integer promotion)、整數轉換級別(integer conversion rank)以及普通算術轉換(usual arithmetic conversion)。

整數轉換級別:每一種整數類型都有一個相應的整數轉換級別,它決定了轉換操作將會如何執行。下面列出了C標準定義的用于決定整數轉換級別的規則:

(1).沒有任何兩種不同的有符號整數類型具有相同的級別,即使它們的表示法相同。

(2).有符號整數類型的級別比任何精度比它低的有符號整數類型的級別高。

(3).long long int類型的級別比long int高;long int的級別比int高;int的級別比short int高;short int的級別比signed char高。

(4).無符號整數類型的級別與對應的有符號整數類型的級別相同(如果相應的有符號整數類型存在的話)。

(5).標準整數類型的級別高于具有同樣寬度的擴展整數類型的級別。

(6)._Bool類型的級別應當低于所有其它標準整數類型。

(7).char、signed char和unsigned char三種類型的級別相同。

(8).與”其它具有相同精度的擴展有符號整數類型”相關的任何擴展有符號整數類型的級別由具體實現定義,但它們仍然要遵從用于決定整數轉換級別的其它規則。

(9).對T1、T2、T3三種整數類型,如果T1的級別比T2高,T2的級別又比T3高,那么T1的級別也比T3高。

C標準建議用于size_t和ptrdiff_t類型的整數轉換級別不應高于signed long int,除非該實現支持足夠大的對象使得這成為必要。

整數類型提升:如果一個整數類型具有低于或等于int或unsigned int的整數轉換級別,那么它的對象或表達式在用于一個需要int或unsigned int的表達式時,就會被提升。整數類型提升被作為普通算術轉換的一個組成部分。

void test_integer_security_promotion()
{
{int sum = 0;char c1 = 'a', c2 = 'b';// 整數類型提升規則要求把c1和c2都提升到int類型// 然后把這兩個int類型的數據相加,得到一個int類型的值,并且該結果被保存在整數類型變量sum中sum = c1 + c2;fprintf(stdout, "sum: %d\n", sum); // 195
}{signed char cresult, c1, c2, c3;c1 = 100; c2 = 3; c3 = 4;// 在用8位補碼表示signed char的平臺上,c1與c2相乘的結果可能會因超過這些平臺上signed char類型的最大值(+127)// 而引起signed char類型的溢出.然而,由于發生了整數類型提升,c1, c2和c3都被轉換為int,因此整個表達式的結果// 能夠被成功地計算出來.該結果隨后被截斷,并被存儲在cresult中.由于結果位于signed char類型的取值范圍內,因// 此該截斷操作并不會導致數據丟失或數據解釋錯誤 cresult = c1 * c2 / c3;fprintf(stdout, "cresult: %d\n", cresult); // 75
}{unsigned char uc = UCHAR_MAX; // 0xFF// 當uc用作求反運算符"~"的操作數時,通過使用零擴展把它擴展為32位,它被提升為signed int類型,因此,在// x86-32架構平臺中,該操作始終產生一個類型為signed int的負值int i = ~uc;fprintf(stdout, "i: %0x\n", i); // 0xffffff00
}
}

整數提升保留值,其中包括符號。如果在所有的原始值中,較小的類型可以被表示為一個int,那么:原始值較小的類型會被轉換成int;否則,它被轉換成unsigned int

之所以需要整數類型提升,主要是為了防止運算過程中中間結果發生溢出而導致算術錯誤,也為了在該架構中以自然的大小執行操作

普通算術轉換:是一套規則。一致性轉換涉及不同類型的兩個操作數。其中一個操作數或者兩個操作數都可能被轉換。很多接受整數操作數的運算符都采用普通算術轉換(usual arithmetic conversion)對其操作數進行轉換。這些運算符包括*、/、%、+、-、<、>、<=、>=、==、!=、&、^、|和條件運算符(?:)。當整數類型提升規則被同時應用到兩個操作數之后,以下規則會被應用到已提升的操作數上:

(1).如果兩個操作數具有相同的類型,則不需要進一步的轉換。

(2).如果兩個操作數擁有相同的整數類型(有符號或無符號),具有較低整數轉換級別的類型的操作數會被轉換到擁有較高級別的操作數的類型。例如,如果一個signed int操作數和一個signed long操作數并列,那么signed int操作數被轉換為signed long。

(3).如果無符號整數類型操作數的級別大于或等于另一個操作數類型的級別,則有符號整數類型操作數將被轉換為無符號整數類型操作數的類型。例如,如果一個signed int操作數和一個unsigned int操作數并列,那么signed int操作數將轉換為unsigned int。

(4).如果有符號整數類型操作數類型能夠表示無符號整數類型操作數類型的所有可能值,則無符號整數類型操作數將被轉換為有符號整數類型操作數的類型。例如,如果一個64位補碼signed long操作數和一個32補碼unsigned int操作數并列,那么unsigned int操作數將轉換為signed long。

(5).否則,兩個操作數都將轉換為與有符號整數類型操作數類型相對應的無符號整數類型。

由無符號整數類型轉換:從較小的無符號整數類型轉換到較大的無符號整數類型始終是安全的,通常通過對其值進行零擴展(zero-extending)而完成。當表達式包含不同寬度的無符號整數操作數時,C標準要求每個操作的結果都具有其中較寬的操作數的類型(和表示范圍)。假設相應的數學運算產生一個在結果類型能表示的范圍內的結果,則得到的表示值就是那個數學值。如果數學結果值不能用結果類型表示,發生的情況有兩類:無符號,損失精度;無符號值轉換成有符號值:

void test_integer_security_unsigned_conversion()
{
{ // 無符號,損失精度unsigned int ui = 300;// 當uc被賦予存儲在ui中的值時,值300以模2^8取余,或300-256=44unsigned char uc = ui;fprintf(stdout, "uc: %u\n", uc); // 44
}{ // 無符號值轉換成有符號值unsigned long int ul = ULONG_MAX;signed char sc;sc = ul; // 可能會導致截斷錯誤fprintf(stdout, "sc: %d\n", sc); // -1
}{ // 當從一個無符號類型轉換為有符號類型時,應驗證范圍unsigned long int ul = ULONG_MAX;signed char sc;if (ul <= SCHAR_MAX) {sc = (signed char)ul; // 使用強制轉換來消除警告} else { // 處理錯誤情況fprintf(stderr, "fail\n");}
}
}

(1).無符號,損失精度:僅對無符號整數類型而言,C規定:值是以模2^w(type)取余,其中2^w(type)是比可以用結果類型表示的最大值大1的數。把一個無符號整數類型的值轉換為較窄的寬度的值被良好地定義為以較窄的寬度為模取余。這是通過截斷較大值并保留其低位實現的。如果該值不能在新的類型中表示,那么數據就會丟失。當一個值不能在新的類型中表示時,任何大小的有符號和無符號整數類型之間發生的轉換都可能會導致數據丟失或錯誤解釋。

(2).無符號值轉換成有符號值:當一個大的無符號值轉換成寬度相同的有符號類型時,C標準規定,當起始值不能在新的(有符號)類型中表示時:結果是由實現定義的,或發出一個實現定義的信號。從一個無符號的類型轉換為有符號類型時,可能發生類型范圍錯誤,包括損失數據(截斷)和損失符號(符號錯誤)。當把一個大的無符號整數轉換為一個較小的有符號整數類型時,值會被截斷,且最高位變成符號位。由此產生的值可能是負的或正的,這取決于截斷后的高位值。如果該值不能在新的類型中表示,數據就會丟失(或錯誤解釋)。當從一個無符號類型轉換為有符號類型時,應驗證范圍

下表總結了x86-32架構中無符號整數類型的轉換:

由有符號整數類型轉換:從較小的有符號整數類型轉換為較大的有符號整數類型始終是安全的,并可以采用對該值進行符號擴展的方法在補碼表示中實現:

void test_integer_security_signed_conversion()
{
{ // 有符號,損失精度signed long int sl = LONG_MAX;signed char sc = (signed char)sl; // 強制轉換消除了警告fprintf(stdout, "sc: %d\n", sc); // -1
}{ // 當從一個有符號類型轉換到精度較低的有符號類型時,應驗證范圍signed long int sl = LONG_MAX;signed char sc;if ((sl < SCHAR_MIN) || (sl > SCHAR_MAX)) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {sc = (signed char)sl; // 使用強制轉換來消除警告fprintf(stdout, "sc: %d\n", sc);}
}{ // 負值和無符號值的比較固有問題unsigned int ui = UINT_MAX;signed char c = -1;// 由于整數提升,c被轉換為unsigned int類型的值0xFFFFFFFF,即4294967295if (c == ui) {fprintf(stderr, "why is -1 = 4294967295\n");}
}{ // 從有符號類型轉換為無符號類型時,可能發生類型范圍錯誤,包括數據丟失(截斷)和損失符號(符號錯誤)signed int si = INT_MIN;// 導致損失符號unsigned int ui = (unsigned int)si; // 強制轉換消除了警告fprintf(stderr, "ui: %u\n", ui); // 2147483648
}{ // 從有符號類型轉換為無符號類型時,應驗證取值范圍signed int si = INT_MIN;unsigned int ui;if (si < 0) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {ui = (unsigned int)si; // 強制轉換消除了警告fprintf(stdout, "ui: %u\n", ui);}
}
}

(1).有符號,損失精度:把有符號整數類型的值轉換為更窄寬度的結果是實現定義的,或者可能引發一個實現定義的信號。一個常見的實現是截斷成較小者的尺寸。在這種情況下,所得到的值可能是負的或正的,視截斷后的高位值而定。如果該值不能在新的類型中表示,那么數據將會丟失(或錯誤解釋)。當從一個有符號類型轉換到精度較低的有符號類型時,應驗證范圍。從較高精度的有符號類型轉換為較低精度的有符號類型需要同時對上限和下限進行檢查

(2).從有符號轉換到無符號:當有符號和無符號整數類型混合操作時,由普通算術轉換確定常見的類型,這個類型至少將具有所涉及的類型中最寬的寬度。C要求如果數學的結果能夠用那個寬度表示,那么會產生該值。當將一個有符號整數類型轉換為無符號整數類型時,反復加上或減去新類型的寬度(2^N)會使結果落在能夠表示的范圍內。當把一個有符號整數的值轉換為一個寬度相等或更大的無符號整數的值并且有符號整數的值不為負時,該值是不變的。

當將一個有符號整數類型轉換為一個寬度相等的無符號整數類型時,不會丟失任何數據,因為保留了位模式。然而,高位失去了它的符號位功能。如果有符號整數的值不為負,則該值不變。如果該值為負,則得到的無符號的值被求值為一個大的有符號整數。如果有符號的值是-2,那么相應的無符號的int值是UINT_MAX-1。從有符號類型轉換為無符號類型時,應驗證取值范圍

下表總結了x86-32平臺上有符號整數類型的轉換:

轉換的影響:隱式轉換簡化了C語言編程。然而,轉換存在潛在的數據丟失或錯誤解釋問題。需避免導致下列結果的轉換:(1).損失值:轉換為值的大小不能表示的一種類型;(2).損失符號:從有符號類型轉換為無符號類型,導致損失符號。

唯一的對所有數據值和所有符號標準的實現都保證安全的整數類型轉換是轉換為符號相同而寬度更寬的類型

5.4 整數操作:可能會導致異常情況下的錯誤,如溢出、回繞和截斷。當某個操作產生的結果不能在操作結果類型中表示時,就會發生異常情況。下表表示執行整數操作時可能的異常情況,不包括在操作數統一到常見的類型時應用普通算術轉換所造成的錯誤:

賦值:在簡單的賦值(=)中,右操作數的值被轉換為賦值表達式的類型并替換存儲在左操作數所指定的對象的值。用一個有符號整數為一個無符號整數賦值,或者用一個無符號整數為一個寬度相等的有符號整數賦值,都可能導致所產生的值被誤解。當從一個具有較大寬度的類型向較小寬度的類型賦值或強制類型轉換時,就會導致發生截斷。如果該值不能用結果類型表示,那么數據可能會丟失。

int f_5_4(void) { return 66; }
void test_integer_security_assignment()
{
{char c;// 函數f_5_4返回的int值可能在存儲到char時被截斷,然后在比較之前將其轉換回int寬度// 在"普通"char具有與unsigned char相同的取值范圍的實現中,轉換的結果不能為負,所以下面比較的操作數// 永遠無法比較為相等,因此,為了有充分的可移植性,變量c應聲明為int類型if ((c = f_5_4()) == -1) {}
}{char c = 'a';int i = 1;long l;// i的值被轉換為c=i賦值表達式的類型,那就是char類型,然后包含在括號中的表達式的值被轉換為括號外的賦值// 表達式的類型,即long int型.如果i的值不在char的取值范圍內,那么在這一系列的分配后,比較表達式// l == i是不會為真的l = (c = i);
}{// 用一個有符號整數為一個無符號整數賦值,或者用一個無符號整數為一個寬度相等的有符號整數賦值,// 都可能導致所產生的值被誤解int si = -3;// 因為新的類型是無符號的,那么通過反復增加或減去比新的類型可以表示的最大值大1的數,該值可以被轉換,// 直到該值落在新的類型的取值范圍內.如果作為無符號值訪問,結果值會被誤解為一個大的正值unsigned int ui = si;fprintf(stdout, "ui = %u\n", ui); // 4294967293fprintf(stdout, "ui = %d\n", ui); // -3// 在大多數實現中,通過逆向操作可以輕易地恢復原來的值si = ui;fprintf(stdout, "si = %d\n", si); // -3
}{unsigned char sum, c1, c2;c1 = 200; c2 = 90;// c1和c2相加產生的值在unsigned char的取值范圍之外,把結果賦值給sum時會被截斷sum = c1 + c2;fprintf(stdout, "sum = %u\n", sum); // 34
}
}

加法:可以用來將兩個算術操作數或者將一個指針與一個整數相加。如果兩個操作數都是算術類型,那么將會對它們執行普通算術轉換。二元的”+”運算符的結果就是其操作數的和。遞增與加1等價。如果表達式是將一個整數類型加到一個指針上,那么其結果將是一個指針,這稱為指針算術運算。兩個整數相加的結果總是能夠用比兩個操作數中較大者的寬度大1位的數來表示。任何整數操作的結果都可以用任何比其中較大者的寬度大1的類型表示。如果結果整數類型占用的位數不足以表示其結果,那么整數加法就會導致溢出或回繞。

void test_integer_security_add()
{
{ // 先驗條件測試,補碼表示: 用來檢測有符號溢出,該解決方案只適用于使用補碼表示的架構signed int si1, si2, sum;si1 = -40; si2 = 30;unsigned int usum = (unsigned int)si1 + si2;fprintf(stdout, "usm = %x, si1 = %x, si2 = %x, int_min = %x\n", usum, si1, si2, INT_MIN);// 異或可以被當作一個按位的"不等"操作,由于只關心符號位置,因此把表達式用INT_MIN進行掩碼,// 這使得只有符號位被設置if ((usum ^ si1) & (usum ^ si2) & INT_MIN) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {sum = si1 + si2;fprintf(stdout, "sum = %d\n", sum);}
}{ // 一般的先驗條件測試signed int si1, si2, sum;si1 = -40; si2 = 30;if ((si2 > 0 && si1 > INT_MAX - si2) || (si2 < 0 && si1 < INT_MIN - si2)) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {sum = si1 + si2;fprintf(stdout, "sum = %d\n", sum);	}
}{ // 先驗條件測試:保證沒有回繞的可能性unsigned int ui1, ui2, usum;ui1 = 10; ui2 = 20;if (UINT_MAX - ui1 < ui2) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {usum = ui1 + ui2;fprintf(stdout, "usum = %u\n", usum);}
}{ // 后驗條件測試unsigned int ui1, ui2, usum;ui1 = 10; ui2 = 20;usum = ui1 + ui2;if (usum < ui1) { // 處理錯誤情況fprintf(stderr, "fail\n");}
}
}

避免或檢測加法產生的有符號溢出:C中有符號溢出是未定義的行為,允許實現默默地回繞(最常見的行為)、陷阱、飽和(固定在最大值/最小值中),或執行實現選擇的其它任何行為。

從一個更大的類型向下強制轉換:寬度為w的任意兩個有符號的整數值真正的和始終可以用w+1位表示。因此,在另外一個寬度更大的類型中執行加法將始終成功。可以對由此產生的值進行范圍檢查,然后再向下強制轉換到原來的類型。一般來說,這種解決方案是依賴于實現的,因為C標準并不能保證任何一個標準的整數類型比另一個整理類型大。

避免或檢測加法造成的回繞:對兩個無符號的值相加時,如果操作數之和大于結果類型所能存儲的最大值,就會發生回繞。雖然無符號整數回繞在C標準中被良好地定義為取模行為,但意外的回繞已導致眾多的軟件漏洞。

后驗條件測試:在操作被執行后進行,它測試操作所得到的值,以確定它是否在有效的范圍內。如果一個異常情況可能會導致顯然有效的值,那么這種做法是無效的,然而,無符號加法始終可以用于測試回繞。

減法:與加法類型,減法也是一種加法操作。對減法而言,兩個操作數都必須是算術類型或指向兼容對象類型的指針。從一個指針中減去一個整數也是合法的。遞減操作等價于減1操作。如果兩個操作之差是負數,那么無符號減法會產生回繞。

void test_integer_security_substruction()
{
{ // 先驗條件測試:兩個正數相減或兩個負數相減都不會發生溢出signed int si1, si2, result;si1 = 10; si2 = -20;// 如果兩個操作數異號,并且結果的符號與第一個操作數不同,則已發生減法溢出// 異或用作一個按位的"不等"操作.要測試符號位置,表達式用INT_MIN進行掩碼,這使得只有符號位被設置// 該解決方案只適用于適用補碼表示的架構if ((si1 ^ si2) & (((unsigned int)si1 - si2) ^ si1) & INT_MIN) { // 處理錯誤條件fprintf(stderr, "fail\n");} else {result = si1 - si2;fprintf(stdout, "result = %d\n", result);}// 可移植的先驗條件測試if ((si2 > 0 && si1 < INT_MIN + si2) || (si2 < 0 && si1 > INT_MAX + si2)) { // 處理錯誤條件fprintf(stderr, "fail\n");} else {result = si1 - si2;fprintf(stdout, "result = %d\n", result);	}
}{ // 無符號操作數的減法操作的先驗條件測試,以保證不存在無符號回繞現象unsigned int ui1, ui2, udiff;ui1 = 10; ui2 = 20;if (ui1 < ui2) { // 處理錯誤條件fprintf(stderr, "fail\n");} else {udiff = ui1 - ui2;fprintf(stdout, "udiff = %u\n", udiff);}
}{ // 后驗條件測試unsigned int ui1, ui2, udiff;ui1 = 10; ui2 = 20;udiff = ui1 - ui2;if (udiff > ui1) { // 處理錯誤情況fprintf(stderr, "fail\n");}
}
}

乘法:在C中乘法可以通過使用二元運算符”*”來得到操作數的積。二元運算符”*”的每個操作數都是算術類型。操作數執行普通算術轉換。乘法容易產生溢出錯誤,因為相對較小的操作數相乘時,都可能導致一個指定的整數類型溢出。一般情況下,兩個整數的操作數的積總是可以用兩個操作數中較大的那個所用的位數的兩倍來表示。這意味著,例如,兩個8位操作數的積總是可以使用16位類表示,而兩個16位操作數的積總是可以使用32位來表示。

void test_integer_security_multiplication()
{
{ // 在無符號乘法的情況下,如果需要高位來表示兩個操作數的積,那么結果以及回繞了unsigned int ui1 = 10;unsigned int ui2 = 20;unsigned int product;static_assert(sizeof(unsigned long long) >= 2 * sizeof(unsigned int), "Unable to detect wrapping after multiplication");unsigned long long tmp = (unsigned long long)ui1 * (unsigned long long)ui2;if (tmp > UINT_MAX) { // 處理無符號回繞fprintf(stderr, "fail\n");} else {product = (unsigned int)tmp;fprintf(stdout, "product = %u\n", product);}
}{ // 保證在long long寬度至少是int寬度兩倍的系統上,不可能產生符號溢出signed int si1 = 20, si2 = 10;signed int result;static_assert(sizeof(long long) >= 2 * sizeof(int),"Unable to detect overflow after multiplication");long long tmp = (long long)si1 * (long long)si2;if ((tmp > INT_MAX) || (tmp < INT_MIN)) { // 處理有符號溢出fprintf(stderr, "fail\n");} else {result = (int)tmp;fprintf(stdout, "result = %d\n", result);}
}{ // 一般的先驗調試測試unsigned int ui1 = 10, ui2 = 20;unsigned int product;if (ui1 > UINT_MAX / ui2) { // 處理無符號回繞fprintf(stderr, "fail\n");} else {product = ui1 * ui2;fprintf(stdout, "product = %u\n", product);}
}{ // 可以防止有符號溢出,而不需要向上強制類型轉換到現有位數的兩倍的整數類型signed int si1 = 10, si2 = 20;signed int product;if (si1 > 0) { // si1是正數if (si2 > 0) { // si1和si2都是正數if (si1 > (INT_MAX / si2)) { // 處理錯誤情況fprintf(stderr, "fail\n");}} // end if si1和si2都是正數else { // si1是正數,si2不是正數if (si2 < (INT_MIN / si1)) { // 處理錯誤情況fprintf(stderr, "fail\n");}} // end if si1是正數,si2不是正數} // end fif si1是正數else { // si1不是正數if (si2 > 0) { // si1不是正數,si2是正數if (si1 < (INT_MIN / si2)) { // 處理錯誤情況fprintf(stderr, "fail\n");}} // end if si1不是正數,si2是正數else { // si1和si2都不是正數if ((si1 != 0) && (si2 < (INT_MAX / si1))) { // 處理錯誤情況fprintf(stderr, "fail\n");}} // end if si1和si2都不是正數} // end if si1不是正數product = si1 * si2;fprintf(stdout, "product = %d\n", product);
}
}

使用靜態斷言static_assert來測試一個常數表達式的值

除法和求余:整數相除時,”/”運算符的結果是代數商的整數部分,任何小數部分都被丟棄,而”%”運算符的結果是余數。這通常稱為向零截斷(truncation toward zero)。在這兩種運算中,如果第二個操作數的值是0,則該行為是未定義的。無符號整數除法不可能產生回繞,因為商總是小于或等于被除數。但并不總是顯而易見的是,有符號整數除法也可能導致溢出,因為你可能認為商數始終小于被除數。然而,補碼的最小值除以-1時會出現整數溢出。

void test_integer_security_division_remainder()
{// 先驗條件:可以通過檢查分子是否為整數類型的最小值以及檢查分母是否為-1來防止有符號整數除法溢出的發生// 只要確保除數不為0,就可以保證不發生除以零錯誤signed long sl1 = 100, sl2 = 5;signed long quotient, result;// 此先驗條件也可測試余數操作數,以保證不可能有一個除以零錯誤或(內部)溢出錯誤if ((sl2 == 0) || ((sl1 == LONG_MIN) && (sl2 == -1))) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {quotient = sl1 / sl2;result = sl1 % sl2;fprintf(stdout, "quotient = %ld, result = %ld\n", quotient, result);}
}

C11標準規定:如果a/b的商可表示,那么表達式(a/b)*b + a%b應等于a,否則,a/b和a%b的行為都是未定義的。

許多硬件平臺上把求余實現為除法運算符的一部分,它可能產生溢出。當被除數等于有符號的整數類型的最小值(負)并且除數等于-1時,求余運算過程中可能會發生溢出。

后驗條件:普通的C++異常處理機制并不允許應用程序從一個硬件異常、諸如存取違例或除以零錯誤一類的故障中恢復。微軟確實為處理這類硬件和其它異常情況提供了名為結構化異常處理(Structured Exception Handing, SEH)的設施。結構化異常處理是操作系統提供的一項設施,它不同于C++的異常處理機制。微軟為C語言提供了一套擴展,從而使C程序可以處理Win32結構化異常。在Linux環境中,類似于除法錯誤這樣的硬件異常是使用信號機制進行處理的。在Linux環境中,類似于除法錯誤這樣的硬件異常是使用信號機制進行處理的。尤其是,如果除數為0,或者商對于目的寄存器而言值太大,系統將會產生一個浮點異常(Floating Point Exception, SIGFPE)。即使是整數運算,而不是一個浮點運算所產生的異常也引發這種類型的信號。為了防止程序在這種情況下非正常終止,可以利用signal函數調用安裝一個信號處理器。

一元反(-):對一個補碼表示的有符號的整數求反,也可能產生一個符號錯誤,因為有符號整數類型的可能值范圍是不對稱的。

移位:此操作包括左移位和右移位。移位會在操作數上執行整數提升,其中每個操作數都具有整數類型。結果類型是提升后的左操作數類型。移位運算符右邊的操作數提供移動的位數。如果該數值為負值或者大于或等于結果類型的位數,那么該行為是未定義的。在幾乎所有情況下,試圖移動一個負的位數或試圖移動比操作數中存在的位數更多的位都表明一個錯誤(邏輯錯誤)。這與溢出是不同的,后者是一個表示不足。不要移動一個負的位數或移動比操作數中存在的位數更多的位

void test_integer_security_shift()
{
{ // 消除了無符號整數左移位操作造成的未定義行為的可能性unsigned int ui1 = 1, ui2 = 31;unsigned int uresult;if (ui2 >= sizeof(unsigned int) * CHAR_BIT) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {uresult = ui1 << ui2;fprintf(stdout, "uresult = %u\n", uresult);}
}{int rc = 0;//int stringify = 0x80000000; // windows/liunx will crash in sprintf functionunsigned int stringify = 0x80000000;char buf[sizeof("256")] = {0};rc = sprintf(buf, "%u", stringify >> 24);if (rc == -1 || rc >= sizeof(buf)) { // 處理錯誤fprintf(stderr, "fail\n");} else {fprintf(stdout, "value: %s\n", buf); // 128}
}
}

左移:E1<<E2的結果是E1左移E2位的位置,空出的位以0填充。如果E1是有符號類型并且是非負值,且E1 * 2E2能夠在結果類型中表示,那么這就是結果值,否則,該行為是未定義的。移位運算符和其它位運算符應僅用于無符號整數操作數。左移位可以用于代替2的冪次數的乘法運算。移位的速度會比乘法快,最好只有當目標是位操作時才使用左移位。

右移:E1>>E2的結果是E1右移E2位的位置。如果E1是一個無符號類型或有符號類型的一個非負的值,則該值的結果是E1/2E2的商的整數部分。如果E1是有符號類型的負值,那么由此產生的值是實現定義的,它可以是算術(有符號)移位。

由于左移位可以取代2的冪次數的乘法,人們通常認為右移位可以取代2的冪次數的除法。然而,只有移位的數值為正時才是如此,原因有兩個,首先,對負值右移位是算術還是邏輯移位是實現定義的。其次,即使在已知執行算術右移位的一個平臺上,其結果與除法也是不同的。此外,現代編譯器可以判斷何時使用移位代替除法是安全的,并會在移位在它們的目標架構上更快時做這種替換。出于這些原因,并為了保持代碼清晰且易于閱讀,只有在我們的目標是位操作時才應該用左移位,在執行傳統的算術時,應使用除法。

5.5 整數漏洞:安全缺陷可能是由于硬件層的整數錯誤或者是跟整數有關的不完善邏輯所造成的。當這些安全缺陷與其它情形結合起來時,就可能會產生漏洞。

回繞:并非所有無符號整數回繞都是安全缺陷。精心定義的無符號整數算術求模屬性經常被特意使用,例如,在散列算法和C標準里rand()的示例實現中就都用到了這個屬性。

void test_integer_security_wrap_around2()
{
{ // 展示了一個無符號整數回繞導致的實際漏洞的例子size_t len = 1;char* src = "comment";size_t size;size = len - 2;fprintf(stderr, "size = %u, %x, %x, %d\n", size, size, size+1, size+1); // 4294967295, ffffffff, 0, 0char* comment = (char*)malloc(size + 1);//memcpy(comment, src, size); // crashfree(comment);
}{int element_t;int count = 10;// 庫函數calloc接受兩個參數:存儲元素類型所需要的空間和元素的個數.為了求出所需內存的大小,使用元素個數// 乘以該元素類型所需的單位空間來計算.如果計算所得結果無法用類型為size_t的無符號整數表示,那么,盡管分// 配程序看上去能夠成功地執行,但實際上它只會分配非常小的內存空間.結果,應用程序對分配的緩沖區的寫操作// 可能會越界,從而導致基于堆的緩沖區溢出char* p = (char*)calloc(sizeof(element_t), count);free(p);
}{int off = 1, len = 2;int type_name;// 這里的off和len都聲明為signed int.因為根據C標準的定義,sizeof運算符返回的是一個無符號整數類型(size_t),// 整數轉換規則要求在那些signed int的寬度等于size_t的寬度的實現上,len - sizeof(type_name)被計算為無符號// 的值,如果len比sizeof運算符返回的值小,那么減法操作會回繞并產生一個巨大的正值std::cout<<"len - sizeof(type_name): "<<len - sizeof(type_name)<<std::endl; // 18446744073709551614if (off > len - sizeof(type_name)) return;// 要消除以上問題,可以把整數范圍檢查編寫為下列替代形式// 程序員仍然必須保證這里的加法操作不會導致回繞,這是通過保證off的值在一個已定義的范圍內實現的.為了消除// 潛在的轉換錯誤,在本例中也應當把off和len都聲明為size_t類型if ((off + sizeof(type_name)) > len) return;
}
}

轉換和截斷錯誤:

void test_integer_security_conversion_truncation()
{
{ // 由轉換錯誤導致的安全漏洞int size = 5;int MAX_ARRAY_SIZE = 10;// 如果size為負數,此檢查將通過,而malloc()函數將被傳入一個為負的大小.因為malloc()需要size_t類型的參數,// 所以size會被轉換成一個巨大的無符號數.當有符號整數類型被轉換為一個無符號的整數類型時,會重復加上或減去// 新類型的寬度(2^N),以使結果落在可表示的范圍之內.因此,這種轉換可能會導致大于MAX_ARRAY_SIZE的值.這種// 錯誤可以通過把size聲明為size_t而不是int來消除if (size < MAX_ARRAY_SIZE) { // 初始化數組char* array = (char*)malloc(size);free(array);} else { // 處理錯誤fprintf(stderr, "fail\n");}
}{ // 由整數截斷錯誤導致的緩沖區溢出漏洞char* argv[3] = {"", "abc", "123"};unsigned short int total;// 攻擊者可能會提供兩個總長度無法用unsigned short整數total表示的字符做參數,這樣,總長度值將會用比結果// 類型所能表示的最大值大1的數取模截斷,函數strlen返回一個無符號整數類型size_t的結果,對于大多數實現而言,// size_t的寬度大于unsigned short的寬度,必然要進行降級操作,strcpy和strcat的執行將導致緩沖區溢出total = strlen(argv[1]) + strlen(argv[2]) + 1;char* buff = (char*)malloc(total);strcpy(buff, argv[1]);strcat(buff, argv[2]);fprintf(stdout, "buff: %s\n", buff);free(buff);
}
}

非異常的整數邏輯錯誤:

void test_integer_security_integer_logic()
{int* table = nullptr;int pos = 50, value = 10;if (!table) {table = (int*)malloc(sizeof(int) * 100);}// 由于對插入位置pos缺乏必要的范圍檢查,因此將會導致一個漏洞.因為pos開始時被聲明為有符號整數,即傳遞// 到函數中的值既可正又可負if (pos > 99) return;// 如果pos是一個負值,那么value將會被寫入實際緩沖區起始地址pos*sizeof(int)字節之前的位置// 消除安全缺陷:將形式參數pos聲明為無符號整數類型,或者把同時檢查上屆和下界作為范圍檢查的一部分table[pos] = value; // 等價于: *(int*)((char*)table+(pos*sizeof(int))) = value;free(table);
}

5.6 緩解策略:整數漏洞是由整數類型范圍錯誤(integer type range error)所引起的。例如,發生整數溢出是因為在整數操作時產生了超過特定整數類型表示范圍的數值。發生截斷錯誤是因為結果被存放在一個對它而言過小的類型中。數據轉換,特別是那些由于賦值或強制類型轉換產生的轉換,會導致轉換后的值超出結果類型范圍。

整數類型的選擇:應使用無符號整數表示不可能是負數的整數值,而且應使用有符號整數值表示可以為負的值。在一般情況下,應該使用完全可以代表任何特定變量可能值的范圍的最小的有符號或無符號類型,以節省內存。當內存消耗不是問題時,你可以決定把變量聲明為signed int或unsigned int,以盡量減少潛在的轉換錯誤。

void test_integer_security_type_selection()
{char* argv = "";// 次優的:首先,大小不會是負值,因此,沒有必要使用一個有符號整數類型;其次,short整數類型對于可能的對象// 大小可能不具有足夠的范圍short total1 = strlen(argv) + 1;// 無符號size_t類型,是C標準委員會為了表示對象大小而引入的,此類型的變量都保證有足夠的精度來表示一個對象的大小size_t total2 = strlen(argv) + 1;// C11附錄K引入一個新類型rsize_t,它被定義為size_t,但明確地用于保存單個對象的大小
#ifdef _MSC_VERrsize_t total3 = strlen(argv) + 1;
#endif
}

任何用于表示一個對象大小的變量,包括用作大小、索引、循環計數器和長度的整數值,如果可以,都應該聲明為rsize_t,或聲明為size_t。

抽象數據類型:數據抽象可以用標準和擴展的整數類型無法做到的方式支持數據的范圍。

任意精度算術:有效地提供了一個新的整數類型,其寬度只受主機系統可用內存限制。有很多任意精度算術的包可供使用,盡管它們主要用于科學計算,然而它們也能用于解決由于表示法缺少精度而引起的整數類型范圍錯誤問題。

GNU多精度算術庫(GMP):GNU Multiple-Precision Arithmetic library,是一個用C編寫的可移植的庫,用于對整數、有理數以及浮點數進行任意精度的算術運算。

C語言解決方案:可以通過在編譯器的類型系統中添加任意精度的整數來實現一種防止整數算術溢出的語言解決方案。

范圍檢查:《C安全編碼標準》有一些防止范圍錯誤的規則:

(1).確保無符號整數運算不回繞;

(2).確保整數的轉換不會導致數據丟失或錯誤解釋;

(3).確保對有符號整數的操作不會導致溢出。

在不可能發生范圍錯誤的情況下,提供范圍檢查是不太重要的。

前提條件和后驗條件測試:

void test_integer_security_conditions_test()
{
{ // 兩個無符號整數加法是否回繞的先驗條件測試unsigned int ui1, ui2, usum;ui1 = 10; ui2 = 20;if (UINT_MAX - ui1 < ui2) { // 處理錯誤情況fprintf(stderr, "fail\n");} else {usum = ui1 + ui2;}
}{ // 確保有符號的乘法運算不會導致溢出的嚴格的符合性測試signed int si1, si2, result;si1 = 10; si2 = -20;if (si1 > 0) {if (si2 > 0) {if (si1 > (INT_MAX / si2)) { // 處理錯誤情況fprintf(stderr, "fail\n");}} else {if (si2 < (INT_MIN / si1)) { // 處理錯誤情況fprintf(stderr, "fail\n");}}} else {if (si2 > 0) {if (si1 < (INT_MAX / si2)) { // 處理錯誤情況fprintf(stderr, "fail\n");}} else {if ((si1 != 0) && (si2 < (INT_MAX / si1))) { // 處理錯誤情況fprintf(stderr, "fail\n");}}}result = si1 * si2;
}{ // 后驗條件測試可用于檢測無符號整數回繞,因為這些操作被定義為取模操作unsigned int ui1, ui2, usum;ui1 = 10; ui2 = 20;usum = ui1 + ui2;// 用這種方式檢測范圍錯誤代價可能相對較高if (usum < ui1) { // 處理錯誤情況fprintf(stderr, "fail\n");}
}
}

安全整數庫:可以用來提供安全的整數運算,它們要么成功,要么報告錯誤。

溢出檢測:C標準定義了<fenv.h>頭文件來支持浮點異常狀態標志、IEC60559和類似的浮點狀態信息所需的定向舍入控制模式。

編譯器生成的運行時檢查:

(1).微軟Visual Studio運行時錯誤檢查:可用/RTCc編譯標志啟用本機運行時檢查,它檢測導致數據丟失的賦值。在程序的發行(優化)版構建中運行時錯誤檢查不工作。

(2).GCC -ftrapv標志:GCC提供了一個-ftrapv編譯器選項,該選項對在運行時檢測整數溢出提供了有限的支持。

可驗證范圍操作:飽和(saturation)和取模回繞(modwrap)算法和限制范圍內使用的技術產生的整數結果總是在定義的范圍內。這個范圍位于整數值MIN和MAX(含)之間,這里MIN和MAX是兩個可表示的整數,且MIN比MAX小。

仿佛無限范圍整數模型:為了使程序行為與程序員常用的數學推理有更大的一致性,仿佛無限范圍(As-If Infinitely Ranged, AIR)整數模型保證,要么整數值相當于使用無限范圍的整數得到的,要么就發生運行時異常。

測試和分析:靜態分析,無論是由編譯器還是一個靜態分析儀執行的,都可用于檢測源代碼中潛在的整數范圍錯誤。這些問題一旦被確定,就可以通過使用適當的整數類型或添加邏輯修改你的程序,以確保可能值的范圍在你所使用的類型范圍內,從而修正它們。靜態分析容易產生誤報(false positive)。誤報是被編譯器或分析儀錯誤地診斷為錯誤的編程結構。提供既可靠(無漏報)又完備(無誤報)的分析是很難(或不可能)的。免費提供的開源靜態分析工具的兩個例子是ROSE和Splint。

以上代碼段的完整code見:GitHub/Messy_Test

GitHub:https://github.com/fengbingchun/Messy_Test

總結

以上是生活随笔為你收集整理的C和C++安全编码笔记:整数安全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 日本乱人伦片中文三区 | 精品国产一区二区三区四区在线看 | 西西人体www44rt大胆高清 | 色婷婷香蕉在线一区二区 | 免费无码一区二区三区蜜桃大 | 女人色极品影院 | 色情久久久av熟女人妻网站 | 国产极品美女高潮无套在线观看 | 久久精品人人做人人综合 | 人妻天天爽夜夜爽一区二区 | 亚洲成在人网站无码天堂 | 99久久无码一区人妻 | 国产精品99久久精品爆乳 | 精品国产乱码久久久久乱码 | 亚洲欧洲无卡二区视頻 | 人妻体内射精一区二区三四 | aⅴ在线视频男人的天堂 | 国产9 9在线 | 中文 | 99久久人妻精品免费二区 | 亚洲欧美日韩成人高清在线一区 | 亚洲人成网站在线播放942 | 精品无人区无码乱码毛片国产 | 狠狠色丁香久久婷婷综合五月 | av香港经典三级级 在线 | 三级4级全黄60分钟 | 国产网红无码精品视频 | 久久久久久久久888 | 国产精品成人av在线观看 | 国产成人无码午夜视频在线观看 | 国产97人人超碰caoprom | 玩弄少妇高潮ⅹxxxyw | 亚洲国产精品久久人人爱 | 精品久久久久久人妻无码中文字幕 | 亚洲国产精品美女久久久久 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 久久综合色之久久综合 | 国产亚洲精品久久久久久久 | 乱码av麻豆丝袜熟女系列 | 国产人妖乱国产精品人妖 | 亚拍精品一区二区三区探花 | 国产无套内射久久久国产 | 亚洲精品午夜国产va久久成人 | 日韩人妻无码中文字幕视频 | 国精品人妻无码一区二区三区蜜柚 | 啦啦啦www在线观看免费视频 | 久久99精品国产麻豆 | 小泽玛莉亚一区二区视频在线 | 中文字幕色婷婷在线视频 | 日本xxxx色视频在线观看免费 | 好爽又高潮了毛片免费下载 | 国产在线无码精品电影网 | 国产偷国产偷精品高清尤物 | 国产午夜无码视频在线观看 | 亚洲日韩一区二区 | 蜜臀av在线播放 久久综合激激的五月天 | 国产免费久久精品国产传媒 | 美女张开腿让人桶 | 人妻无码久久精品人妻 | 久久这里只有精品视频9 | 亚洲欧美综合区丁香五月小说 | 中文久久乱码一区二区 | 亚洲精品综合一区二区三区在线 | 国产口爆吞精在线视频 | 人人澡人摸人人添 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久人人97超碰a片精品 | 日韩亚洲欧美精品综合 | 特级做a爰片毛片免费69 | 国产猛烈高潮尖叫视频免费 | 日本乱偷人妻中文字幕 | 久久久无码中文字幕久... | 波多野42部无码喷潮在线 | 国产猛烈高潮尖叫视频免费 | 蜜桃臀无码内射一区二区三区 | 97精品国产97久久久久久免费 | 久久综合九色综合欧美狠狠 | aa片在线观看视频在线播放 | 男人扒开女人内裤强吻桶进去 | 成 人 免费观看网站 | 久久99精品久久久久婷婷 | 人人澡人人妻人人爽人人蜜桃 | 无人区乱码一区二区三区 | 欧美怡红院免费全部视频 | 一二三四在线观看免费视频 | 久久亚洲a片com人成 | 牛和人交xxxx欧美 | 一本色道久久综合亚洲精品不卡 | 欧美一区二区三区 | 亚洲七七久久桃花影院 | 天天做天天爱天天爽综合网 | 精品日本一区二区三区在线观看 | 亚洲va欧美va天堂v国产综合 | 亚洲国产一区二区三区在线观看 | 婷婷丁香五月天综合东京热 | 精品成在人线av无码免费看 | 夜夜影院未满十八勿进 | 高清不卡一区二区三区 | 精品国产青草久久久久福利 | 日韩视频 中文字幕 视频一区 | 67194成是人免费无码 | 亚洲va中文字幕无码久久不卡 | 久久精品人人做人人综合 | 人人妻在人人 | 亚洲色在线无码国产精品不卡 | 国产艳妇av在线观看果冻传媒 | 欧美精品免费观看二区 | 小泽玛莉亚一区二区视频在线 | 激情综合激情五月俺也去 | 人妻少妇精品视频专区 | 内射巨臀欧美在线视频 | 熟妇人妻中文av无码 | 欧美第一黄网免费网站 | 国产高清不卡无码视频 | 无码av中文字幕免费放 | 国产精品久久久午夜夜伦鲁鲁 | 四虎影视成人永久免费观看视频 | 国产精品久久久久久久影院 | 亚洲区小说区激情区图片区 | 国产精品多人p群无码 | 在线 国产 欧美 亚洲 天堂 | 麻豆av传媒蜜桃天美传媒 | 久久久国产一区二区三区 | 亚洲s码欧洲m码国产av | 男人的天堂2018无码 | 久久久国产精品无码免费专区 | 人人妻人人澡人人爽欧美精品 | 18黄暴禁片在线观看 | 黑人巨大精品欧美一区二区 | 天堂久久天堂av色综合 | 麻豆蜜桃av蜜臀av色欲av | 精品成在人线av无码免费看 | 亚洲一区二区三区 | 国产乱人伦av在线无码 | 国产亚洲美女精品久久久2020 | 日韩人妻无码一区二区三区久久99 | 麻豆人妻少妇精品无码专区 | 97精品国产97久久久久久免费 | aⅴ亚洲 日韩 色 图网站 播放 | 欧美熟妇另类久久久久久多毛 | 成人无码精品一区二区三区 | 牛和人交xxxx欧美 | 亚洲高清偷拍一区二区三区 | 国产无遮挡吃胸膜奶免费看 | 国产美女精品一区二区三区 | 亚洲熟女一区二区三区 | 亚洲精品中文字幕久久久久 | 亚洲精品www久久久 | 内射欧美老妇wbb | 亚洲国产精品毛片av不卡在线 | 久久久久亚洲精品男人的天堂 | 国产亚av手机在线观看 | 国产美女极度色诱视频www | 日韩欧美群交p片內射中文 | 国产日产欧产精品精品app | 装睡被陌生人摸出水好爽 | 亚洲国产成人a精品不卡在线 | 国产精品高潮呻吟av久久 | 精品国产福利一区二区 | 2019午夜福利不卡片在线 | 国产成人午夜福利在线播放 | 亚洲a无码综合a国产av中文 | 欧美高清在线精品一区 | 久精品国产欧美亚洲色aⅴ大片 | 国产激情一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 国产成人综合在线女婷五月99播放 | 人妻人人添人妻人人爱 | 国产高清不卡无码视频 | 青草视频在线播放 | 国产在热线精品视频 | 性色欲网站人妻丰满中文久久不卡 | 国产三级久久久精品麻豆三级 | 日日碰狠狠躁久久躁蜜桃 | 性欧美大战久久久久久久 | 在线观看欧美一区二区三区 | 久久精品人妻少妇一区二区三区 | 无码av免费一区二区三区试看 | 色婷婷久久一区二区三区麻豆 | 无码毛片视频一区二区本码 | 国内精品人妻无码久久久影院 | 一本久久a久久精品vr综合 | 在线成人www免费观看视频 | 国内精品人妻无码久久久影院蜜桃 | 嫩b人妻精品一区二区三区 | 亚洲日韩精品欧美一区二区 | 天堂а√在线地址中文在线 | 娇妻被黑人粗大高潮白浆 | 乱码av麻豆丝袜熟女系列 | 亚洲成在人网站无码天堂 | 中文字幕乱码人妻二区三区 | 精品久久久久久人妻无码中文字幕 | 国产 浪潮av性色四虎 | 激情内射亚州一区二区三区爱妻 | 亚洲伊人久久精品影院 | 亚洲中文字幕在线观看 | 女人色极品影院 | 久久无码中文字幕免费影院蜜桃 | 久久亚洲中文字幕精品一区 | 欧美日本免费一区二区三区 | 国产热a欧美热a在线视频 | www国产精品内射老师 | 国产精品国产自线拍免费软件 | 天天做天天爱天天爽综合网 | 亚洲精品中文字幕久久久久 | 精品国产成人一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 中文字幕乱码亚洲无线三区 | aⅴ在线视频男人的天堂 | 成人无码精品一区二区三区 | 国产97人人超碰caoprom | 中文字幕无码日韩专区 | 久久伊人色av天堂九九小黄鸭 | 一区二区传媒有限公司 | 国产麻豆精品一区二区三区v视界 | 荫蒂被男人添的好舒服爽免费视频 | 激情爆乳一区二区三区 | 99麻豆久久久国产精品免费 | 日本乱偷人妻中文字幕 | 免费网站看v片在线18禁无码 | 国产尤物精品视频 | 国产香蕉尹人综合在线观看 | 婷婷五月综合缴情在线视频 | 中文字幕 亚洲精品 第1页 | 人妻插b视频一区二区三区 | 婷婷色婷婷开心五月四房播播 | 自拍偷自拍亚洲精品10p | 国产精品资源一区二区 | 国产精品久久久久影院嫩草 | 成人性做爰aaa片免费看 | 无码国产乱人伦偷精品视频 | 亚洲综合久久一区二区 | 久久精品成人欧美大片 | 久久国语露脸国产精品电影 | 日韩欧美群交p片內射中文 | 强开小婷嫩苞又嫩又紧视频 | 性开放的女人aaa片 | 精品久久8x国产免费观看 | 两性色午夜免费视频 | 国产精品毛多多水多 | 欧美性生交xxxxx久久久 | 性欧美大战久久久久久久 | 国产精品无套呻吟在线 | 性生交片免费无码看人 | √天堂中文官网8在线 | 日产精品高潮呻吟av久久 | 极品尤物被啪到呻吟喷水 | 激情人妻另类人妻伦 | 久久zyz资源站无码中文动漫 | 国产又粗又硬又大爽黄老大爷视 | 97色伦图片97综合影院 | 伦伦影院午夜理论片 | 日韩人妻无码中文字幕视频 | 最新国产麻豆aⅴ精品无码 | 精品熟女少妇av免费观看 | 午夜丰满少妇性开放视频 | 一本一道久久综合久久 | 亚洲七七久久桃花影院 | 7777奇米四色成人眼影 | 亚洲午夜无码久久 | 亚洲中文字幕无码中字 | 99久久人妻精品免费二区 | 国产免费久久精品国产传媒 | 久久久成人毛片无码 | 精品少妇爆乳无码av无码专区 | 久久精品国产一区二区三区 | 久久久久久a亚洲欧洲av冫 | 亚洲国产精品无码一区二区三区 | 精品久久久久久人妻无码中文字幕 | 性色av无码免费一区二区三区 | 99国产精品白浆在线观看免费 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产亚洲精品久久久久久国模美 | 无码人妻丰满熟妇区五十路百度 | 精品欧美一区二区三区久久久 | 亚洲小说图区综合在线 | 一本无码人妻在中文字幕免费 | 欧美精品一区二区精品久久 | 久久久久久九九精品久 | 欧美黑人性暴力猛交喷水 | 色五月五月丁香亚洲综合网 | 人妻熟女一区 | 亚洲精品久久久久久一区二区 | 久久精品国产一区二区三区肥胖 | 无码国内精品人妻少妇 | 国产成人无码区免费内射一片色欲 | 午夜免费福利小电影 | 国产成人亚洲综合无码 | 国模大胆一区二区三区 | 未满小14洗澡无码视频网站 | 久久精品国产大片免费观看 | 精品国产一区二区三区四区 | 永久免费观看国产裸体美女 | 欧美日韩精品 | 老子影院午夜精品无码 | 一本久道高清无码视频 | 久久午夜无码鲁丝片秋霞 | 特黄特色大片免费播放器图片 | 又黄又爽又色的视频 | 在线播放亚洲第一字幕 | 久久天天躁狠狠躁夜夜免费观看 | 蜜桃av抽搐高潮一区二区 | 午夜精品久久久久久久 | 无码av最新清无码专区吞精 | 国产精品人人爽人人做我的可爱 | 久久久精品欧美一区二区免费 | 无码人妻出轨黑人中文字幕 | 中文字幕精品av一区二区五区 | 免费国产黄网站在线观看 | 国产激情无码一区二区 | 日日天日日夜日日摸 | 极品尤物被啪到呻吟喷水 | 中文字幕无码av波多野吉衣 | 亚洲成a人一区二区三区 | 精品一区二区不卡无码av | 国产精品福利视频导航 | 日本一卡二卡不卡视频查询 | 午夜精品一区二区三区在线观看 | 亚洲精品综合一区二区三区在线 | 久久久久99精品成人片 | 嫩b人妻精品一区二区三区 | 熟妇人妻无乱码中文字幕 | 两性色午夜视频免费播放 | 国产香蕉97碰碰久久人人 | 国产精品国产三级国产专播 | 亚洲国产综合无码一区 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲欧美综合区丁香五月小说 | 呦交小u女精品视频 | 成在人线av无码免费 | 久久人人爽人人爽人人片ⅴ | 午夜福利不卡在线视频 | 国产成人无码av一区二区 | 四虎影视成人永久免费观看视频 | 黑人大群体交免费视频 | 国产成人综合在线女婷五月99播放 | 一二三四社区在线中文视频 | 国产亚洲精品久久久久久 | 好男人www社区 | 18精品久久久无码午夜福利 | 亚洲精品国产精品乱码视色 | 国色天香社区在线视频 | 亚洲中文无码av永久不收费 | 娇妻被黑人粗大高潮白浆 | 在线看片无码永久免费视频 | 奇米影视7777久久精品人人爽 | 国色天香社区在线视频 | 大屁股大乳丰满人妻 | 国产乱子伦视频在线播放 | 99国产精品白浆在线观看免费 | 国产超级va在线观看视频 | 88国产精品欧美一区二区三区 | 亚洲性无码av中文字幕 | 天干天干啦夜天干天2017 | 国产偷抇久久精品a片69 | 亚洲精品综合五月久久小说 | 亚洲爆乳大丰满无码专区 | 免费网站看v片在线18禁无码 | 丰满人妻一区二区三区免费视频 | 东京一本一道一二三区 | 久久久久久a亚洲欧洲av冫 | 牲欲强的熟妇农村老妇女 | 97精品国产97久久久久久免费 | 永久免费观看国产裸体美女 | 亚洲乱码国产乱码精品精 | 人妻中文无码久热丝袜 | 色欲综合久久中文字幕网 | 天堂一区人妻无码 | 欧美午夜特黄aaaaaa片 | 乌克兰少妇xxxx做受 | 色欲久久久天天天综合网精品 | 精品久久久无码中文字幕 | 亚洲 a v无 码免 费 成 人 a v | 国产精品香蕉在线观看 | 永久黄网站色视频免费直播 | 88国产精品欧美一区二区三区 | 免费无码午夜福利片69 | 欧美丰满熟妇xxxx性ppx人交 | 午夜无码人妻av大片色欲 | 亚洲七七久久桃花影院 | 亚洲经典千人经典日产 | 亚洲日韩av一区二区三区中文 | 丝袜 中出 制服 人妻 美腿 | 男女猛烈xx00免费视频试看 | 国产免费久久久久久无码 | 一本久久a久久精品vr综合 | 亚洲精品成a人在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 国产成人无码av片在线观看不卡 | 狠狠色色综合网站 | 日韩 欧美 动漫 国产 制服 | 福利一区二区三区视频在线观看 | 欧美野外疯狂做受xxxx高潮 | 伊人色综合久久天天小片 | 久久久久久a亚洲欧洲av冫 | 人人爽人人爽人人片av亚洲 | 性啪啪chinese东北女人 | 欧美国产日产一区二区 | 久久人人爽人人爽人人片av高清 | 骚片av蜜桃精品一区 | 精品国产成人一区二区三区 | 无码精品国产va在线观看dvd | 亚洲精品久久久久中文第一幕 | 亚洲色在线无码国产精品不卡 | 999久久久国产精品消防器材 | 国产成人精品三级麻豆 | 熟妇人妻激情偷爽文 | 中文字幕无码热在线视频 | 中国女人内谢69xxxx | 国产精品无码一区二区桃花视频 | 在线播放亚洲第一字幕 | 亚洲毛片av日韩av无码 | 中文字幕久久久久人妻 | 亚洲国产成人a精品不卡在线 | 日本精品人妻无码免费大全 | 无码精品人妻一区二区三区av | 国产精品99爱免费视频 | 亚洲男人av天堂午夜在 | 中文无码精品a∨在线观看不卡 | 精品人妻人人做人人爽夜夜爽 | 色欲久久久天天天综合网精品 | 精品日本一区二区三区在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 国产做国产爱免费视频 | 国产艳妇av在线观看果冻传媒 | 丰满肥臀大屁股熟妇激情视频 | 国产成人无码区免费内射一片色欲 | 欧洲熟妇精品视频 | 亚洲一区二区三区偷拍女厕 | 日本一区二区三区免费高清 | 国产人妻人伦精品 | 熟妇人妻无乱码中文字幕 | 欧美变态另类xxxx | 日韩 欧美 动漫 国产 制服 | 性色欲网站人妻丰满中文久久不卡 | 99久久人妻精品免费二区 | 精品乱子伦一区二区三区 | 国产色在线 | 国产 | 强伦人妻一区二区三区视频18 | 撕开奶罩揉吮奶头视频 | 久久午夜无码鲁丝片午夜精品 | 亚洲成a人一区二区三区 | 亚洲の无码国产の无码影院 | 成年女人永久免费看片 | 午夜精品一区二区三区的区别 | 老熟女重囗味hdxx69 | 国产偷国产偷精品高清尤物 | 超碰97人人做人人爱少妇 | 国产免费久久久久久无码 | 久久精品国产日本波多野结衣 | 国产精品久久久久久久9999 | а√资源新版在线天堂 | 国产情侣作爱视频免费观看 | 曰本女人与公拘交酡免费视频 | 天海翼激烈高潮到腰振不止 | 精品少妇爆乳无码av无码专区 | 免费播放一区二区三区 | 精品人妻人人做人人爽夜夜爽 | 在线a亚洲视频播放在线观看 | 中文字幕日韩精品一区二区三区 | 女人和拘做爰正片视频 | 成人无码精品一区二区三区 | 色欲人妻aaaaaaa无码 | 未满成年国产在线观看 | 在线播放亚洲第一字幕 | 澳门永久av免费网站 | 一本色道婷婷久久欧美 | 亚洲人成网站免费播放 | 久久精品99久久香蕉国产色戒 | 老司机亚洲精品影院无码 | 一本大道伊人av久久综合 | 亚洲日韩一区二区 | 国产精品国产自线拍免费软件 | 一本精品99久久精品77 | 欧美日韩一区二区综合 | 国产精品人人妻人人爽 | 国产亚洲欧美日韩亚洲中文色 | 日本丰满熟妇videos | www国产亚洲精品久久网站 | 丰满少妇女裸体bbw | 人人妻人人澡人人爽欧美精品 | 一区二区传媒有限公司 | 欧美熟妇另类久久久久久多毛 | 久久午夜无码鲁丝片午夜精品 | 国产精品人人爽人人做我的可爱 | 99久久精品国产一区二区蜜芽 | 国产性生交xxxxx无码 | 狠狠色噜噜狠狠狠7777奇米 | 无码中文字幕色专区 | 久久国内精品自在自线 | 国产内射爽爽大片视频社区在线 | 国产无套粉嫩白浆在线 | 无码av最新清无码专区吞精 | 偷窥日本少妇撒尿chinese | 纯爱无遮挡h肉动漫在线播放 | 99久久人妻精品免费二区 | 日韩精品久久久肉伦网站 | 久久国内精品自在自线 | 欧美性生交活xxxxxdddd | 蜜臀av无码人妻精品 | 久9re热视频这里只有精品 | 成人性做爰aaa片免费看不忠 | 国产精华av午夜在线观看 | 日本xxxx色视频在线观看免费 | 免费播放一区二区三区 | 国产艳妇av在线观看果冻传媒 | 国产69精品久久久久app下载 | 大肉大捧一进一出好爽视频 | 成人精品一区二区三区中文字幕 | 2020久久香蕉国产线看观看 | 精品无码成人片一区二区98 | 国产va免费精品观看 | 亚洲爆乳精品无码一区二区三区 | 免费国产成人高清在线观看网站 | 极品嫩模高潮叫床 | 日韩在线不卡免费视频一区 | 精品久久久无码人妻字幂 | 少妇无码av无码专区在线观看 | 亚洲人亚洲人成电影网站色 | 四虎4hu永久免费 | 娇妻被黑人粗大高潮白浆 | 亚洲精品国产第一综合99久久 | 免费无码一区二区三区蜜桃大 | 丰满人妻一区二区三区免费视频 | 高潮毛片无遮挡高清免费 | 熟女俱乐部五十路六十路av | 18禁黄网站男男禁片免费观看 | 人妻无码αv中文字幕久久琪琪布 | 国产suv精品一区二区五 | 蜜桃臀无码内射一区二区三区 | 亚洲人成网站在线播放942 | 内射爽无广熟女亚洲 | 人人妻人人藻人人爽欧美一区 | 97人妻精品一区二区三区 | 丝袜 中出 制服 人妻 美腿 | 色综合久久中文娱乐网 | 内射后入在线观看一区 | 大乳丰满人妻中文字幕日本 | 国产sm调教视频在线观看 | 日本在线高清不卡免费播放 | 国产精品鲁鲁鲁 | 国产精品美女久久久久av爽李琼 | 国产成人精品无码播放 | av小次郎收藏 | 无码国产乱人伦偷精品视频 | 中文字幕无码日韩欧毛 | 奇米影视888欧美在线观看 | 亚洲日韩一区二区三区 | 久久无码中文字幕免费影院蜜桃 | 国产电影无码午夜在线播放 | 野外少妇愉情中文字幕 | 老熟女乱子伦 | 日韩av无码中文无码电影 | 久久精品国产大片免费观看 | 欧美日韩综合一区二区三区 | 99久久人妻精品免费一区 | 好爽又高潮了毛片免费下载 | 狠狠亚洲超碰狼人久久 | 国产亚洲精品久久久久久 | 小泽玛莉亚一区二区视频在线 | 日本饥渴人妻欲求不满 | 无遮挡国产高潮视频免费观看 | 成人无码视频在线观看网站 | 国精产品一品二品国精品69xx | 国产无遮挡又黄又爽又色 | 日本一卡二卡不卡视频查询 | 国产亚洲精品久久久久久大师 | 国产免费久久久久久无码 | 午夜福利一区二区三区在线观看 | 中文毛片无遮挡高清免费 | 欧美xxxxx精品 | 国语自产偷拍精品视频偷 | 成人精品视频一区二区 | 亚洲欧洲无卡二区视頻 | 88国产精品欧美一区二区三区 | 国产午夜福利100集发布 | 久久综合久久自在自线精品自 | 一本精品99久久精品77 | 色综合久久88色综合天天 | 亚洲一区二区三区无码久久 | 日日麻批免费40分钟无码 | 中国大陆精品视频xxxx | 一本大道伊人av久久综合 | 无码免费一区二区三区 | 国产手机在线αⅴ片无码观看 | 女人色极品影院 | 自拍偷自拍亚洲精品10p | 国产av无码专区亚洲awww | 黑人玩弄人妻中文在线 | 国产av剧情md精品麻豆 | 婷婷综合久久中文字幕蜜桃三电影 | 久久www免费人成人片 | 九九久久精品国产免费看小说 | 国产精品久久久久久久9999 | 岛国片人妻三上悠亚 | 精品久久综合1区2区3区激情 | 精品人妻人人做人人爽夜夜爽 | 狠狠色丁香久久婷婷综合五月 | 国产乱人无码伦av在线a | 丝袜足控一区二区三区 | 久久精品女人的天堂av | 亚洲成av人片在线观看无码不卡 | 亚洲无人区一区二区三区 | 日日夜夜撸啊撸 | 成人免费视频视频在线观看 免费 | 精品日本一区二区三区在线观看 | 免费视频欧美无人区码 | 午夜精品久久久久久久久 | 亚洲精品成人av在线 | 亚洲人成网站免费播放 | 少妇激情av一区二区 | 国内少妇偷人精品视频免费 | 亚洲色成人中文字幕网站 | 狠狠色欧美亚洲狠狠色www | 国产亚洲精品久久久久久国模美 | 无码国产乱人伦偷精品视频 | 久久99精品国产麻豆蜜芽 | 动漫av一区二区在线观看 | 国产精品高潮呻吟av久久4虎 | 中文字幕色婷婷在线视频 | 又大又硬又黄的免费视频 | 亚洲日韩av一区二区三区中文 | 精品一区二区三区无码免费视频 | 亚洲狠狠婷婷综合久久 | 5858s亚洲色大成网站www | 欧美日韩人成综合在线播放 | 六月丁香婷婷色狠狠久久 | 97无码免费人妻超级碰碰夜夜 | 欧美高清在线精品一区 | 色老头在线一区二区三区 | 九九综合va免费看 | 无码av免费一区二区三区试看 | 欧美一区二区三区视频在线观看 | 鲁一鲁av2019在线 | 精品国产一区二区三区四区在线看 | a片在线免费观看 | 天堂无码人妻精品一区二区三区 | 激情国产av做激情国产爱 | 亚洲精品国产精品乱码不卡 | 国产精华av午夜在线观看 | 久久人妻内射无码一区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲一区二区三区国产精华液 | 亚洲精品无码人妻无码 | 51国偷自产一区二区三区 | 女人被男人爽到呻吟的视频 | 色婷婷香蕉在线一区二区 | 美女黄网站人色视频免费国产 | 国产精品亚洲一区二区三区喷水 | 动漫av网站免费观看 | 亚洲大尺度无码无码专区 | 欧美精品在线观看 | 草草网站影院白丝内射 | 欧美阿v高清资源不卡在线播放 | 欧美肥老太牲交大战 | 亚洲色欲色欲欲www在线 | 婷婷丁香五月天综合东京热 | 欧洲精品码一区二区三区免费看 | 中文字幕乱码中文乱码51精品 | 一本久道高清无码视频 | 久久国产精品_国产精品 | 一本精品99久久精品77 | 国产精品18久久久久久麻辣 | 无码av岛国片在线播放 | 图片区 小说区 区 亚洲五月 | 99在线 | 亚洲 | 人人妻人人藻人人爽欧美一区 | 成人女人看片免费视频放人 | 日本乱人伦片中文三区 | 呦交小u女精品视频 | 国产婷婷色一区二区三区在线 | 99久久精品国产一区二区蜜芽 | 免费男性肉肉影院 | 图片区 小说区 区 亚洲五月 | 野外少妇愉情中文字幕 | 久久久久久亚洲精品a片成人 | 亚洲精品无码国产 | 久久亚洲精品中文字幕无男同 | aa片在线观看视频在线播放 | yw尤物av无码国产在线观看 | 骚片av蜜桃精品一区 | 乱码午夜-极国产极内射 | 亚洲第一网站男人都懂 | 国产精品无码久久av | 荫蒂添的好舒服视频囗交 | 国产无av码在线观看 | 激情综合激情五月俺也去 | 少妇太爽了在线观看 | 亚洲国产成人av在线观看 | 亚洲国产av精品一区二区蜜芽 | yw尤物av无码国产在线观看 | 丝袜 中出 制服 人妻 美腿 | yw尤物av无码国产在线观看 | 国产欧美精品一区二区三区 | 亚洲а∨天堂久久精品2021 | 中文精品无码中文字幕无码专区 | 最近中文2019字幕第二页 | 国产成人无码午夜视频在线观看 | 麻豆蜜桃av蜜臀av色欲av | 国产精品亚洲一区二区三区喷水 | 国产极品美女高潮无套在线观看 | 中文字幕+乱码+中文字幕一区 | 少妇的肉体aa片免费 | 青草视频在线播放 | 午夜福利不卡在线视频 | 日本一卡2卡3卡四卡精品网站 | 久久久久亚洲精品男人的天堂 | 久久久久成人片免费观看蜜芽 | 国产一区二区三区四区五区加勒比 | 亚洲成a人片在线观看日本 | 美女黄网站人色视频免费国产 | 久久久久se色偷偷亚洲精品av | 久久久久se色偷偷亚洲精品av | 中文字幕+乱码+中文字幕一区 | 国产高清av在线播放 | 久久综合九色综合97网 | 99久久精品国产一区二区蜜芽 | 国产精品a成v人在线播放 | 亚洲国产欧美日韩精品一区二区三区 | 岛国片人妻三上悠亚 | 丰满护士巨好爽好大乳 | 老子影院午夜伦不卡 | 伊人久久大香线蕉亚洲 | 熟女少妇在线视频播放 | 成人免费视频在线观看 | 欧美兽交xxxx×视频 | 中文毛片无遮挡高清免费 | 成年美女黄网站色大免费视频 | 国产精品99爱免费视频 | 亚洲国产av美女网站 | 最近中文2019字幕第二页 | 国产超碰人人爽人人做人人添 | 亚洲乱码日产精品bd | 成在人线av无码免费 | aa片在线观看视频在线播放 | 麻豆蜜桃av蜜臀av色欲av | 日韩精品无码免费一区二区三区 | 国产精品久久国产精品99 | 无遮挡啪啪摇乳动态图 | 色欲av亚洲一区无码少妇 | 国产精品无码永久免费888 | www成人国产高清内射 | 亚洲精品久久久久久一区二区 | 午夜福利不卡在线视频 | 最新版天堂资源中文官网 | 欧美xxxxx精品 | 风流少妇按摩来高潮 | 98国产精品综合一区二区三区 | 欧美日本精品一区二区三区 | 亚洲中文字幕在线无码一区二区 | 久久国产精品精品国产色婷婷 | 男人的天堂2018无码 | 国产偷国产偷精品高清尤物 | 无码人妻精品一区二区三区不卡 | 99久久久无码国产aaa精品 | 2019nv天堂香蕉在线观看 | 麻豆精品国产精华精华液好用吗 | www国产亚洲精品久久网站 | 午夜无码人妻av大片色欲 | 永久免费精品精品永久-夜色 | 男女猛烈xx00免费视频试看 | 国产人妻精品一区二区三区不卡 | 久久成人a毛片免费观看网站 | 无码帝国www无码专区色综合 | 久久精品女人天堂av免费观看 | 99久久精品无码一区二区毛片 | 亚洲中文字幕在线观看 | 娇妻被黑人粗大高潮白浆 | 天天做天天爱天天爽综合网 | 久久www免费人成人片 | 婷婷五月综合缴情在线视频 | 天堂а√在线中文在线 | 精品午夜福利在线观看 | 国产在线一区二区三区四区五区 | 国产av一区二区精品久久凹凸 | 欧美性生交xxxxx久久久 | 亚洲国产精品无码久久久久高潮 | 99久久久无码国产精品免费 | 亚洲精品中文字幕乱码 | 国产97人人超碰caoprom | 国产无遮挡又黄又爽免费视频 | 鲁一鲁av2019在线 | 黑人玩弄人妻中文在线 | 波多野结衣 黑人 | 99久久99久久免费精品蜜桃 | 麻豆国产97在线 | 欧洲 | 亚洲理论电影在线观看 | 99久久精品无码一区二区毛片 | 亚洲熟熟妇xxxx | 精品久久久久久亚洲精品 | 国产激情无码一区二区 | 天天做天天爱天天爽综合网 | 日韩人妻无码中文字幕视频 | 亚洲 高清 成人 动漫 | 国产亲子乱弄免费视频 | 噜噜噜亚洲色成人网站 | 久久精品国产精品国产精品污 | 久久精品女人天堂av免费观看 | 欧美人与善在线com | 中文字幕人妻丝袜二区 | 亚洲精品一区二区三区大桥未久 | 精品久久久久久人妻无码中文字幕 | 亚洲日韩av一区二区三区四区 | 天堂无码人妻精品一区二区三区 | 亚无码乱人伦一区二区 | 中文字幕日产无线码一区 | 蜜桃臀无码内射一区二区三区 | 欧美日本免费一区二区三区 | 亚洲啪av永久无码精品放毛片 | 男人的天堂av网站 | 在线播放免费人成毛片乱码 | 少女韩国电视剧在线观看完整 | 天天摸天天透天天添 | 国产精华av午夜在线观看 | 国产亚av手机在线观看 | 水蜜桃亚洲一二三四在线 | 久久精品国产精品国产精品污 | 欧洲熟妇色 欧美 | 久久国产36精品色熟妇 | 女人和拘做爰正片视频 | 天天躁夜夜躁狠狠是什么心态 | 未满成年国产在线观看 | 又湿又紧又大又爽a视频国产 | 性欧美牲交xxxxx视频 | 国产av人人夜夜澡人人爽麻豆 | 日韩精品乱码av一区二区 | 国产偷抇久久精品a片69 | 久久婷婷五月综合色国产香蕉 | yw尤物av无码国产在线观看 | 亚洲の无码国产の无码影院 | 少妇人妻av毛片在线看 | 国产精品福利视频导航 | 中国大陆精品视频xxxx | 日韩av无码中文无码电影 | 色一情一乱一伦一区二区三欧美 | 宝宝好涨水快流出来免费视频 | 特级做a爰片毛片免费69 | 国产精品资源一区二区 | 亚洲热妇无码av在线播放 | 少妇被粗大的猛进出69影院 | 草草网站影院白丝内射 | 动漫av网站免费观看 | 熟女少妇人妻中文字幕 | 国产精品第一国产精品 | 久久综合色之久久综合 | 18精品久久久无码午夜福利 | 成人亚洲精品久久久久软件 | 丰满妇女强制高潮18xxxx | 日日天干夜夜狠狠爱 | 欧美高清在线精品一区 | 亚洲欧美日韩综合久久久 | 在线视频网站www色 | 国产两女互慰高潮视频在线观看 | 一本大道久久东京热无码av | 76少妇精品导航 | 国产一区二区不卡老阿姨 | 久久精品丝袜高跟鞋 | 亚洲欧美中文字幕5发布 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 一个人看的视频www在线 | 麻豆md0077饥渴少妇 | 国产无av码在线观看 | 国产午夜福利100集发布 | 亚洲自偷自拍另类第1页 | 亚洲国产精品一区二区美利坚 | 精品aⅴ一区二区三区 | 精品欧美一区二区三区久久久 | 久激情内射婷内射蜜桃人妖 | 久久久久成人精品免费播放动漫 | 国产精品久久久av久久久 | 亚洲国产成人a精品不卡在线 | 日产精品99久久久久久 | 午夜嘿嘿嘿影院 | 色综合视频一区二区三区 | 自拍偷自拍亚洲精品10p | 国产极品美女高潮无套在线观看 | 久久无码中文字幕免费影院蜜桃 | 日本一卡二卡不卡视频查询 | 久久www免费人成人片 | 国产乱码精品一品二品 | 扒开双腿疯狂进出爽爽爽视频 | 久久久久久国产精品无码下载 | 亚洲色www成人永久网址 | 精品无码国产自产拍在线观看蜜 | 性史性农村dvd毛片 | 国产人妻精品一区二区三区 | 国产成人综合美国十次 | 粗大的内捧猛烈进出视频 | 欧美成人家庭影院 | 亚洲一区二区三区在线观看网站 | 熟女少妇在线视频播放 | 97资源共享在线视频 | 国产精品亚洲五月天高清 | 亚洲精品国产第一综合99久久 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲成av人在线观看网址 | 黑人粗大猛烈进出高潮视频 | 亚洲娇小与黑人巨大交 | 波多野42部无码喷潮在线 | 亚洲爆乳精品无码一区二区三区 | 亚洲国产精品久久久久久 | 国产精品毛片一区二区 | 中文字幕无码热在线视频 | 久久国产精品精品国产色婷婷 | 久久久久se色偷偷亚洲精品av | 国产精品对白交换视频 | 任你躁在线精品免费 | 无码乱肉视频免费大全合集 | 亚洲精品国产a久久久久久 | 久久久精品456亚洲影院 | 99久久久无码国产精品免费 | 国产亚洲精品久久久ai换 | 人人妻人人澡人人爽精品欧美 | 久久久久久九九精品久 | 日韩精品无码一本二本三本色 | 国产97色在线 | 免 | 成人一在线视频日韩国产 | 欧美xxxx黑人又粗又长 | 漂亮人妻洗澡被公强 日日躁 | 国产亚洲人成a在线v网站 | 丰满妇女强制高潮18xxxx | 少妇激情av一区二区 | 欧洲极品少妇 | 亚洲精品一区三区三区在线观看 | 日本一区二区三区免费高清 | 色 综合 欧美 亚洲 国产 | 天下第一社区视频www日本 | 丰满人妻一区二区三区免费视频 | www国产亚洲精品久久网站 | 天天综合网天天综合色 | 亚洲熟妇色xxxxx欧美老妇 | 精品人妻中文字幕有码在线 | 狠狠色噜噜狠狠狠狠7777米奇 | 又色又爽又黄的美女裸体网站 | 黑人粗大猛烈进出高潮视频 | 日产国产精品亚洲系列 | 国产香蕉97碰碰久久人人 | 人人爽人人爽人人片av亚洲 | 18禁黄网站男男禁片免费观看 | 永久免费精品精品永久-夜色 | 国产精品毛片一区二区 | 精品国产一区av天美传媒 | 久久99精品国产麻豆 | 日韩精品无码免费一区二区三区 | 18无码粉嫩小泬无套在线观看 | 久激情内射婷内射蜜桃人妖 | 亚洲一区二区三区在线观看网站 | 无码精品人妻一区二区三区av | 国产真人无遮挡作爱免费视频 | 少妇无码av无码专区在线观看 | 一本加勒比波多野结衣 | 四虎永久在线精品免费网址 | 午夜无码人妻av大片色欲 | 免费国产黄网站在线观看 | 无码人妻精品一区二区三区不卡 | 中文字幕乱码人妻二区三区 | 国色天香社区在线视频 | 精品久久久久久人妻无码中文字幕 | 人妻少妇精品视频专区 | 亚洲s色大片在线观看 | 久久伊人色av天堂九九小黄鸭 | 熟女俱乐部五十路六十路av | 日欧一片内射va在线影院 | 精品国产一区二区三区av 性色 | 国产色在线 | 国产 | 人人爽人人爽人人片av亚洲 | 色欲综合久久中文字幕网 | 中文无码精品a∨在线观看不卡 | 亚洲综合无码一区二区三区 | 377p欧洲日本亚洲大胆 | 女人高潮内射99精品 | 大屁股大乳丰满人妻 | 欧美老妇交乱视频在线观看 | 青青久在线视频免费观看 | 少妇人妻大乳在线视频 | 99久久久无码国产aaa精品 | 国产婷婷色一区二区三区在线 | 永久免费观看国产裸体美女 | 国产精品亚洲综合色区韩国 | 亚洲午夜福利在线观看 | 福利一区二区三区视频在线观看 | 国产人妖乱国产精品人妖 | 欧美人与动性行为视频 | 久久精品国产日本波多野结衣 | 扒开双腿疯狂进出爽爽爽视频 | 99久久久国产精品无码免费 | 欧美真人作爱免费视频 | 免费乱码人妻系列无码专区 | 老子影院午夜精品无码 | 内射白嫩少妇超碰 | 无码一区二区三区在线观看 | 久久精品中文字幕一区 | 国产精品亚洲综合色区韩国 | 无码纯肉视频在线观看 | 亚洲精品国产品国语在线观看 | 人人澡人摸人人添 | 国产成人精品久久亚洲高清不卡 | 成人无码视频免费播放 | 国产真实伦对白全集 | 久久午夜无码鲁丝片秋霞 | 性做久久久久久久久 | 国产熟妇高潮叫床视频播放 | 亚洲阿v天堂在线 | 国产精品二区一区二区aⅴ污介绍 | 国产av人人夜夜澡人人爽麻豆 | 九九在线中文字幕无码 | 乱码午夜-极国产极内射 | 国产av人人夜夜澡人人爽麻豆 | 小泽玛莉亚一区二区视频在线 | 亚洲欧洲中文日韩av乱码 | 国产av一区二区精品久久凹凸 | 欧美性生交活xxxxxdddd | 欧美激情一区二区三区成人 | 久久精品国产精品国产精品污 | 国产精品嫩草久久久久 | 国产亲子乱弄免费视频 | 精品无码一区二区三区爱欲 | 国产激情无码一区二区app | 成人精品视频一区二区 | 国产在热线精品视频 | 午夜精品一区二区三区的区别 | 日本护士xxxxhd少妇 | 中文字幕无线码 | 国产农村妇女高潮大叫 | 亚洲欧洲中文日韩av乱码 | 日韩av无码中文无码电影 | 免费看男女做好爽好硬视频 | 999久久久国产精品消防器材 | www成人国产高清内射 | 夫妻免费无码v看片 | 性欧美大战久久久久久久 | 久久综合给合久久狠狠狠97色 | 成人女人看片免费视频放人 | 亚洲欧洲日本综合aⅴ在线 | 欧美性猛交内射兽交老熟妇 | 久久综合激激的五月天 | 青草青草久热国产精品 | 无遮挡国产高潮视频免费观看 | 中文字幕人成乱码熟女app | 日日摸夜夜摸狠狠摸婷婷 | 久久精品国产99精品亚洲 | 老子影院午夜伦不卡 | 99久久精品国产一区二区蜜芽 | 国产办公室秘书无码精品99 | 久久久久免费精品国产 | 俺去俺来也在线www色官网 | 国产一区二区三区精品视频 | 一本一道久久综合久久 | 免费无码一区二区三区蜜桃大 | 国产成人精品视频ⅴa片软件竹菊 | 99久久精品无码一区二区毛片 | 76少妇精品导航 | 香蕉久久久久久av成人 | 精品国产一区二区三区av 性色 | 国产99久久精品一区二区 | 久久国内精品自在自线 | 色婷婷av一区二区三区之红樱桃 | 精品亚洲韩国一区二区三区 | 亚洲高清偷拍一区二区三区 | 女人高潮内射99精品 | 国产舌乚八伦偷品w中 | 少妇人妻av毛片在线看 | 乱人伦人妻中文字幕无码久久网 | 日日夜夜撸啊撸 | 亚洲人成影院在线无码按摩店 | 日本乱人伦片中文三区 | 亚洲精品中文字幕久久久久 | 亚洲狠狠婷婷综合久久 | 在线播放免费人成毛片乱码 | 精品人人妻人人澡人人爽人人 | 鲁鲁鲁爽爽爽在线视频观看 | 人人妻人人澡人人爽人人精品 | 性生交大片免费看l | 国产精品99久久精品爆乳 | 男人扒开女人内裤强吻桶进去 | 波多野结衣乳巨码无在线观看 | 国产性生大片免费观看性 | 欧美午夜特黄aaaaaa片 | 在线精品国产一区二区三区 | 亚洲国产综合无码一区 | 黑人玩弄人妻中文在线 | 日本一区二区更新不卡 | 麻豆成人精品国产免费 | 日本www一道久久久免费榴莲 | 亚洲成色www久久网站 | 中文字幕无码免费久久99 | 国产在线精品一区二区高清不卡 | 国产97人人超碰caoprom | 国产69精品久久久久app下载 | 图片区 小说区 区 亚洲五月 | aa片在线观看视频在线播放 | 欧美人与善在线com | 国产精品美女久久久 | 波多野结衣一区二区三区av免费 | 两性色午夜免费视频 | 久久精品国产亚洲精品 | 亚洲国产av精品一区二区蜜芽 | 久久五月精品中文字幕 | 欧美肥老太牲交大战 | 波多野结衣av一区二区全免费观看 | 亚洲中文字幕av在天堂 | 成人女人看片免费视频放人 | 国产精品无码mv在线观看 | 免费观看激色视频网站 | 少妇无码一区二区二三区 | 国产在热线精品视频 | 野狼第一精品社区 | 成人无码影片精品久久久 | 久久99热只有频精品8 | 在线播放无码字幕亚洲 | 伊在人天堂亚洲香蕉精品区 | 久精品国产欧美亚洲色aⅴ大片 | 国产va免费精品观看 | 狂野欧美激情性xxxx | 久久精品国产日本波多野结衣 | 任你躁在线精品免费 | 领导边摸边吃奶边做爽在线观看 | 国产亚洲人成a在线v网站 | 狠狠色色综合网站 | 国产麻豆精品一区二区三区v视界 | 一本大道伊人av久久综合 | 老司机亚洲精品影院 | 装睡被陌生人摸出水好爽 | 无码人妻精品一区二区三区不卡 | 一个人看的视频www在线 | 男女超爽视频免费播放 | 亚洲va欧美va天堂v国产综合 | 久久99久久99精品中文字幕 | 国产精品毛多多水多 | 天天躁日日躁狠狠躁免费麻豆 | 精品国产青草久久久久福利 | 97久久精品无码一区二区 | 亚洲一区二区三区国产精华液 | 欧美老妇与禽交 | 婷婷丁香六月激情综合啪 | 国产无遮挡吃胸膜奶免费看 | 一本久道久久综合狠狠爱 | 草草网站影院白丝内射 | 亚洲国产高清在线观看视频 | 狠狠色丁香久久婷婷综合五月 | 西西人体www44rt大胆高清 | 国产艳妇av在线观看果冻传媒 | 国产激情综合五月久久 | 久久精品国产99精品亚洲 | 精品久久久久香蕉网 | 女人被男人躁得好爽免费视频 | 国产无av码在线观看 | 高清不卡一区二区三区 | 精品熟女少妇av免费观看 | 未满小14洗澡无码视频网站 | 日产国产精品亚洲系列 | 无码人妻出轨黑人中文字幕 | 牲欲强的熟妇农村老妇女视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧美兽交xxxx×视频 | 久久伊人色av天堂九九小黄鸭 | 亚洲男女内射在线播放 | 国产色精品久久人妻 | 国产精品久久福利网站 | 久久久亚洲欧洲日产国码αv | 99在线 | 亚洲 | 国产精品.xx视频.xxtv | 婷婷色婷婷开心五月四房播播 | 亚洲精品鲁一鲁一区二区三区 | 性色av无码免费一区二区三区 | 精品国产麻豆免费人成网站 | 欧美日本精品一区二区三区 | 欧洲熟妇色 欧美 | 国产在线精品一区二区高清不卡 | 亚洲一区二区三区香蕉 | 亚洲熟妇色xxxxx欧美老妇 | 蜜桃视频韩日免费播放 | 国精品人妻无码一区二区三区蜜柚 | 人妻无码久久精品人妻 | 四虎国产精品一区二区 | 亚洲色在线无码国产精品不卡 | 亚洲另类伦春色综合小说 | 国产精品二区一区二区aⅴ污介绍 | 国产人妻久久精品二区三区老狼 | 精品人妻人人做人人爽 | 国产另类ts人妖一区二区 | 国产高清不卡无码视频 | 欧美日本日韩 | 丰满少妇熟乱xxxxx视频 | 欧美一区二区三区视频在线观看 | 国产97人人超碰caoprom | 四虎国产精品免费久久 | 成熟妇人a片免费看网站 | 日本乱偷人妻中文字幕 | 国产精品欧美成人 | 欧美亚洲日韩国产人成在线播放 | 免费无码的av片在线观看 | 亚洲人成网站色7799 | 双乳奶水饱满少妇呻吟 | 日本精品久久久久中文字幕 | 成人综合网亚洲伊人 | 巨爆乳无码视频在线观看 | 人人妻人人藻人人爽欧美一区 | 色一情一乱一伦一视频免费看 | 真人与拘做受免费视频 | 久久久www成人免费毛片 | 婷婷综合久久中文字幕蜜桃三电影 | 成 人 网 站国产免费观看 | 夫妻免费无码v看片 | 亚洲区欧美区综合区自拍区 | ass日本丰满熟妇pics | 人人澡人摸人人添 | 日韩精品成人一区二区三区 | 亚洲中文字幕va福利 | 夜夜躁日日躁狠狠久久av | 真人与拘做受免费视频 | 亚洲色欲色欲欲www在线 | 美女黄网站人色视频免费国产 | 国产午夜福利100集发布 | 欧美zoozzooz性欧美 | 粉嫩少妇内射浓精videos | 日本又色又爽又黄的a片18禁 | 西西人体www44rt大胆高清 | 精品久久久中文字幕人妻 | 国产香蕉尹人视频在线 | 男女爱爱好爽视频免费看 | 免费乱码人妻系列无码专区 | 亚欧洲精品在线视频免费观看 | 亚洲精品综合五月久久小说 | 欧美高清在线精品一区 | 久久午夜无码鲁丝片 | 欧美精品无码一区二区三区 | 男女作爱免费网站 | 精品日本一区二区三区在线观看 | 亚洲色欲久久久综合网东京热 | 18黄暴禁片在线观看 | 久久成人a毛片免费观看网站 | 国产麻豆精品精东影业av网站 | 中文字幕无码免费久久9一区9 | 99国产欧美久久久精品 | 国产成人无码a区在线观看视频app | 少妇一晚三次一区二区三区 | 扒开双腿疯狂进出爽爽爽视频 | 国产亚洲精品久久久久久久久动漫 | 国产精品亚洲一区二区三区喷水 | 97资源共享在线视频 | 俺去俺来也在线www色官网 | 国产熟妇另类久久久久 | 偷窥村妇洗澡毛毛多 | 国产色xx群视频射精 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产后入清纯学生妹 | 国产日产欧产精品精品app | 久久天天躁夜夜躁狠狠 | 初尝人妻少妇中文字幕 | 97精品人妻一区二区三区香蕉 | 大地资源网第二页免费观看 | 又大又黄又粗又爽的免费视频 | 久久精品国产一区二区三区肥胖 | 国模大胆一区二区三区 | 日本一区二区三区免费高清 | 中文字幕日产无线码一区 | 日韩精品久久久肉伦网站 | 性色欲网站人妻丰满中文久久不卡 | 久久精品成人欧美大片 | 欧美人与物videos另类 | 成人欧美一区二区三区黑人免费 | 最新国产乱人伦偷精品免费网站 | 精品久久综合1区2区3区激情 | 亚洲精品国产品国语在线观看 | 亚洲日本va午夜在线电影 | 99视频精品全部免费免费观看 | 国产艳妇av在线观看果冻传媒 | 国产午夜福利100集发布 | 国产亚洲精品久久久闺蜜 | 国产在热线精品视频 | 亚洲精品国产精品乱码不卡 | 欧美精品一区二区精品久久 | 麻豆国产97在线 | 欧洲 | 国产一区二区不卡老阿姨 | 日本乱偷人妻中文字幕 | 久久精品国产精品国产精品污 | 久久成人a毛片免费观看网站 | 成人欧美一区二区三区黑人 | 久久精品中文字幕大胸 | 午夜时刻免费入口 | 玩弄中年熟妇正在播放 | 欧美成人午夜精品久久久 | 性啪啪chinese东北女人 | 久久久久久久久蜜桃 | 亚洲色大成网站www国产 | 东京一本一道一二三区 | 欧美zoozzooz性欧美 | 亚洲成色在线综合网站 | 国产精品igao视频网 | 偷窥日本少妇撒尿chinese | 99视频精品全部免费免费观看 | 老司机亚洲精品影院 | 无码午夜成人1000部免费视频 | 国产莉萝无码av在线播放 | 好爽又高潮了毛片免费下载 | 一个人看的www免费视频在线观看 | 1000部夫妻午夜免费 | 啦啦啦www在线观看免费视频 | 性色欲情网站iwww九文堂 | 久久综合狠狠综合久久综合88 | 国产口爆吞精在线视频 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲国产精品成人久久蜜臀 | 中文字幕无码免费久久99 | 日本成熟视频免费视频 | 精品国产av色一区二区深夜久久 | 欧美野外疯狂做受xxxx高潮 | 精品久久久久久人妻无码中文字幕 | 97夜夜澡人人双人人人喊 | 色综合久久中文娱乐网 | 大乳丰满人妻中文字幕日本 | 亚洲中文无码av永久不收费 | 免费观看的无遮挡av | 亚洲伊人久久精品影院 | 日韩在线不卡免费视频一区 | 夜先锋av资源网站 | 激情内射日本一区二区三区 | 在线a亚洲视频播放在线观看 | 欧洲美熟女乱又伦 | 永久免费精品精品永久-夜色 | 久久精品国产日本波多野结衣 | 中文字幕无码日韩专区 | 久久婷婷五月综合色国产香蕉 | 国产网红无码精品视频 | 中文字幕人妻丝袜二区 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲乱亚洲乱妇50p | 男女超爽视频免费播放 | 国产97人人超碰caoprom | 在线观看免费人成视频 | 国产艳妇av在线观看果冻传媒 | 在线精品亚洲一区二区 | 欧美老妇与禽交 | 久久久久久久人妻无码中文字幕爆 | 亚洲の无码国产の无码影院 | 久久久久久久人妻无码中文字幕爆 | 久久久久免费看成人影片 | 在线 国产 欧美 亚洲 天堂 | 久久久www成人免费毛片 | 国产精品丝袜黑色高跟鞋 | 国产在线一区二区三区四区五区 | 无码人妻丰满熟妇区五十路百度 | 日韩欧美中文字幕公布 | 任你躁在线精品免费 | 在线欧美精品一区二区三区 | 欧美xxxx黑人又粗又长 | 麻豆精品国产精华精华液好用吗 | 久久久av男人的天堂 | 午夜精品一区二区三区在线观看 | 岛国片人妻三上悠亚 | 免费网站看v片在线18禁无码 | 日韩人妻无码一区二区三区久久99 | 亚洲の无码国产の无码影院 | 亚洲国产精品毛片av不卡在线 | 成人免费视频在线观看 | 国产网红无码精品视频 | 一本久道高清无码视频 | 亚洲码国产精品高潮在线 | 性欧美大战久久久久久久 | 精品午夜福利在线观看 | 激情五月综合色婷婷一区二区 | 国产黄在线观看免费观看不卡 | 欧美野外疯狂做受xxxx高潮 | 日日干夜夜干 | 精品偷拍一区二区三区在线看 | 中文字幕人妻无码一夲道 | 亚洲精品无码人妻无码 | 国产人成高清在线视频99最全资源 | 成人一在线视频日韩国产 | 国产三级久久久精品麻豆三级 | 无码av免费一区二区三区试看 | 久久午夜无码鲁丝片午夜精品 | 内射爽无广熟女亚洲 | 一本无码人妻在中文字幕免费 | 丝袜美腿亚洲一区二区 | 2019nv天堂香蕉在线观看 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 久久无码中文字幕免费影院蜜桃 | 亚洲欧洲日本综合aⅴ在线 | a国产一区二区免费入口 | 无码帝国www无码专区色综合 | 18无码粉嫩小泬无套在线观看 | 国产午夜无码精品免费看 | 成熟女人特级毛片www免费 | 少女韩国电视剧在线观看完整 | 亚洲精品国产精品乱码视色 | 人妻有码中文字幕在线 | 67194成是人免费无码 | 亚洲熟悉妇女xxx妇女av | 亚洲国产精品一区二区第一页 | 国产精品久久久久9999小说 | 精品无码国产自产拍在线观看蜜 | 久久99热只有频精品8 | 少妇久久久久久人妻无码 | 中文字幕av无码一区二区三区电影 | 久久精品国产99精品亚洲 | 一本久道高清无码视频 | 亚洲 a v无 码免 费 成 人 a v | 亚洲 a v无 码免 费 成 人 a v | 人人妻人人澡人人爽人人精品 | 精品国产一区av天美传媒 | av人摸人人人澡人人超碰下载 | 亚洲精品中文字幕 | 婷婷五月综合缴情在线视频 | 亚洲精品欧美二区三区中文字幕 | 国产精品理论片在线观看 | 欧美xxxxx精品 | 亚洲色www成人永久网址 | 久久久久亚洲精品中文字幕 | 67194成是人免费无码 | 色一情一乱一伦一区二区三欧美 | 欧美xxxx黑人又粗又长 | 中文字幕色婷婷在线视频 | 亚洲中文字幕在线无码一区二区 | 国产精品嫩草久久久久 | 中文字幕无码av激情不卡 | 久久精品人人做人人综合试看 | 国产成人av免费观看 | 欧美人与牲动交xxxx | 色五月丁香五月综合五月 | 亚洲第一无码av无码专区 | 2019午夜福利不卡片在线 | 日本xxxx色视频在线观看免费 | 亚洲成熟女人毛毛耸耸多 | 久久综合给久久狠狠97色 | 激情五月综合色婷婷一区二区 | 疯狂三人交性欧美 | 久久久久久久久蜜桃 | 在线 国产 欧美 亚洲 天堂 | 欧美成人免费全部网站 | 亚洲成av人综合在线观看 | 99国产精品白浆在线观看免费 | 性做久久久久久久免费看 | 四虎4hu永久免费 | 丝袜人妻一区二区三区 | 樱花草在线播放免费中文 | 成人动漫在线观看 | 日韩精品无码一本二本三本色 | 无码精品人妻一区二区三区av | 波多野结衣乳巨码无在线观看 | 久久亚洲国产成人精品性色 | 国产在热线精品视频 | 国产精品成人av在线观看 | 国产精品对白交换视频 | 国产艳妇av在线观看果冻传媒 | 色妞www精品免费视频 | 亚洲va中文字幕无码久久不卡 | 色婷婷av一区二区三区之红樱桃 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲综合无码一区二区三区 | 国产女主播喷水视频在线观看 | 精品国产一区二区三区四区在线看 | 国产人妻精品一区二区三区不卡 | 中文毛片无遮挡高清免费 | 美女毛片一区二区三区四区 | 99久久人妻精品免费一区 | 中文字幕乱码人妻二区三区 | 在线播放免费人成毛片乱码 | 中文毛片无遮挡高清免费 | 亚洲s色大片在线观看 | 欧美日韩人成综合在线播放 | 亚洲人成网站免费播放 | 国产av无码专区亚洲awww | 人妻少妇精品无码专区动漫 | 思思久久99热只有频精品66 | 国产情侣作爱视频免费观看 | 国产sm调教视频在线观看 | 亚洲国产精品无码久久久久高潮 | 天天摸天天碰天天添 | 久久人人爽人人爽人人片ⅴ | 天天做天天爱天天爽综合网 | 亚洲国产精华液网站w | 少妇人妻大乳在线视频 | 亚洲人亚洲人成电影网站色 | 久久人人爽人人人人片 | 久久久久成人精品免费播放动漫 | 九九久久精品国产免费看小说 | 曰韩少妇内射免费播放 | 国产绳艺sm调教室论坛 | 成人亚洲精品久久久久软件 | 久久久亚洲欧洲日产国码αv | 波多野结衣高清一区二区三区 | 麻豆国产丝袜白领秘书在线观看 | 国产精品视频免费播放 | 精品国产国产综合精品 | 亚洲 欧美 激情 小说 另类 | 国产另类ts人妖一区二区 | 少妇一晚三次一区二区三区 | 久久久久久九九精品久 | 国产精品沙发午睡系列 | 无码一区二区三区在线 | 国产免费久久精品国产传媒 | 国产亚洲精品久久久闺蜜 | 久久久久免费精品国产 | 少妇性俱乐部纵欲狂欢电影 | 精品日本一区二区三区在线观看 | аⅴ资源天堂资源库在线 | 日本一本二本三区免费 | 欧洲欧美人成视频在线 | 久久久久久a亚洲欧洲av冫 | 老司机亚洲精品影院无码 | 领导边摸边吃奶边做爽在线观看 | 人妻少妇精品无码专区二区 | 无码成人精品区在线观看 | 国产精品亚洲一区二区三区喷水 | 高潮毛片无遮挡高清免费视频 | 天天拍夜夜添久久精品大 | 日韩精品成人一区二区三区 | 撕开奶罩揉吮奶头视频 | 久久 国产 尿 小便 嘘嘘 | 欧美freesex黑人又粗又大 | 国产av剧情md精品麻豆 | 男女猛烈xx00免费视频试看 | 曰韩少妇内射免费播放 | 国产av一区二区三区最新精品 | 狠狠色丁香久久婷婷综合五月 | 伊人色综合久久天天小片 | а√资源新版在线天堂 | 免费无码午夜福利片69 | 97夜夜澡人人爽人人喊中国片 | 国产激情一区二区三区 | 少妇无码av无码专区在线观看 | 中文久久乱码一区二区 | 欧美老妇与禽交 | 377p欧洲日本亚洲大胆 | 国产高清不卡无码视频 | 久久精品中文字幕大胸 | 欧美日韩视频无码一区二区三 | 极品嫩模高潮叫床 | 性啪啪chinese东北女人 | 久久熟妇人妻午夜寂寞影院 | 影音先锋中文字幕无码 | 小sao货水好多真紧h无码视频 | 又色又爽又黄的美女裸体网站 | 伊人久久大香线蕉午夜 | 黑人大群体交免费视频 | 国产成人综合在线女婷五月99播放 | 天天拍夜夜添久久精品大 | 97无码免费人妻超级碰碰夜夜 | 无码人妻少妇伦在线电影 | 欧美黑人性暴力猛交喷水 | 国产深夜福利视频在线 | 国产成人亚洲综合无码 | 激情亚洲一区国产精品 | 熟女体下毛毛黑森林 | 久久久久久亚洲精品a片成人 | 日本护士xxxxhd少妇 | 亚洲熟熟妇xxxx | 一区二区三区乱码在线 | 欧洲 | 亚洲成a人片在线观看无码 | 国产肉丝袜在线观看 | aa片在线观看视频在线播放 | 日日噜噜噜噜夜夜爽亚洲精品 | 最近免费中文字幕中文高清百度 | 国内精品一区二区三区不卡 | aⅴ在线视频男人的天堂 | 日欧一片内射va在线影院 | 亚洲无人区午夜福利码高清完整版 | 欧美自拍另类欧美综合图片区 | 国产精品久久久久久无码 | a在线亚洲男人的天堂 | 久久精品国产日本波多野结衣 | 欧洲极品少妇 | 激情综合激情五月俺也去 | 美女黄网站人色视频免费国产 | 久久亚洲中文字幕精品一区 | 国产一区二区三区精品视频 | 久久精品国产99久久6动漫 | 国产小呦泬泬99精品 | 国产乡下妇女做爰 | 欧美性色19p | 无码人妻av免费一区二区三区 | 久久99热只有频精品8 | 暴力强奷在线播放无码 | 乱人伦人妻中文字幕无码久久网 | 人人妻人人澡人人爽人人精品浪潮 | 极品嫩模高潮叫床 | 精品 日韩 国产 欧美 视频 | 久久久久亚洲精品男人的天堂 | 国产熟女一区二区三区四区五区 | 欧美35页视频在线观看 | 国产9 9在线 | 中文 | 久久久成人毛片无码 | 樱花草在线社区www | 久久久久久久女国产乱让韩 | 中国女人内谢69xxxx | 伊在人天堂亚洲香蕉精品区 | 日产精品99久久久久久 | 国产无遮挡吃胸膜奶免费看 | 无码精品国产va在线观看dvd | 真人与拘做受免费视频一 | 亚洲精品午夜国产va久久成人 | 国产精品久久久久9999小说 | 日韩少妇内射免费播放 | 欧美兽交xxxx×视频 | 欧美大屁股xxxxhd黑色 | 欧美日韩久久久精品a片 | 国产熟妇另类久久久久 | 国产精品99久久精品爆乳 | 水蜜桃亚洲一二三四在线 | 亚洲国产精品一区二区第一页 | 青青久在线视频免费观看 | 99riav国产精品视频 | 久激情内射婷内射蜜桃人妖 | 国产激情艳情在线看视频 | 日本熟妇浓毛 | 国产精品资源一区二区 | 欧美日韩久久久精品a片 | 欧美性黑人极品hd | 男女超爽视频免费播放 | 亚洲一区二区三区国产精华液 | 蜜臀aⅴ国产精品久久久国产老师 | www成人国产高清内射 | 精品偷自拍另类在线观看 | 久久久久久久人妻无码中文字幕爆 | 国产亚洲人成a在线v网站 | 日韩少妇内射免费播放 | 国产一区二区三区精品视频 | 国产麻豆精品一区二区三区v视界 | 性开放的女人aaa片 | 久热国产vs视频在线观看 | 成年美女黄网站色大免费视频 | 日本饥渴人妻欲求不满 | 亚洲精品午夜无码电影网 | 女人被男人躁得好爽免费视频 | 又黄又爽又色的视频 | 极品嫩模高潮叫床 | 呦交小u女精品视频 | 国产乱子伦视频在线播放 | 免费人成在线观看网站 | 精品亚洲成av人在线观看 | av人摸人人人澡人人超碰下载 | 亚洲中文字幕无码中文字在线 | 国产农村妇女高潮大叫 | 纯爱无遮挡h肉动漫在线播放 | 久久天天躁夜夜躁狠狠 | 久久精品国产精品国产精品污 | 精品熟女少妇av免费观看 | 成人免费视频一区二区 | 美女黄网站人色视频免费国产 | 欧美精品国产综合久久 | 99re在线播放 | 欧美熟妇另类久久久久久不卡 | 国产xxx69麻豆国语对白 | 亚洲欧美国产精品专区久久 | 99久久精品无码一区二区毛片 | 久9re热视频这里只有精品 | 无码福利日韩神码福利片 | 18禁黄网站男男禁片免费观看 | 在线а√天堂中文官网 | 一区二区三区高清视频一 | 亚洲日韩一区二区 | 国产成人精品久久亚洲高清不卡 | 免费播放一区二区三区 | 午夜丰满少妇性开放视频 | 久久精品中文闷骚内射 | 国产无遮挡又黄又爽又色 | 久久久久成人片免费观看蜜芽 | 成人aaa片一区国产精品 | 色综合久久网 | 永久免费观看美女裸体的网站 | 欧美日韩精品 | 欧美35页视频在线观看 | 亚洲色在线无码国产精品不卡 | 日日夜夜撸啊撸 | 任你躁国产自任一区二区三区 | 2020久久香蕉国产线看观看 | 日本大乳高潮视频在线观看 | 亚洲国产精品美女久久久久 | 精品国产福利一区二区 | 亚洲精品一区二区三区在线 | 国产成人精品久久亚洲高清不卡 | 帮老师解开蕾丝奶罩吸乳网站 | 久久精品人妻少妇一区二区三区 | 欧美激情一区二区三区成人 |