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

📄 breakage.c

📁 开源的ssl算法openssl,版本0.9.8H
💻 C
字号:
#include "tunala.h"int int_strtoul(const char *str, unsigned long *val){#ifdef HAVE_STRTOUL	char *tmp;	unsigned long ret = strtoul(str, &tmp, 10);	if((str == tmp) || (*tmp != '\0'))		/* The value didn't parse cleanly */		return 0;	if(ret == ULONG_MAX)		/* We hit a limit */		return 0;	*val = ret;	return 1;#else	char buf[2];	unsigned long ret = 0;	buf[1] = '\0';	if(str == '\0')		/* An empty string ... */		return 0;	while(*str != '\0') {		/* We have to multiply 'ret' by 10 before absorbing the next		 * digit. If this will overflow, catch it now. */		if(ret && (((ULONG_MAX + 10) / ret) < 10))			return 0;		ret *= 10;		if(!isdigit(*str))			return 0;		buf[0] = *str;		ret += atoi(buf);		str++;	}	*val = ret;	return 1;#endif}#ifndef HAVE_STRSTRchar *int_strstr(const char *haystack, const char *needle){	const char *sub_haystack = haystack, *sub_needle = needle;	unsigned int offset = 0;	if(!needle)		return haystack;	if(!haystack)		return NULL;	while((*sub_haystack != '\0') && (*sub_needle != '\0')) {		if(sub_haystack[offset] == sub_needle) {			/* sub_haystack is still a candidate */			offset++;			sub_needle++;		} else {			/* sub_haystack is no longer a possibility */			sub_haystack++;			offset = 0;			sub_needle = needle;		}	}	if(*sub_haystack == '\0')		/* Found nothing */		return NULL;	return sub_haystack;}#endif

⌨️ 快捷键说明

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