The various character predicates (isspace and the like) may not be
used with negative char values, so I've added casts to unsigned char. Maybe what really should be done is change all those arrays and pointers to type unsigned char [] or unsigned char *, respectively; but using plain char with those predicates is just wrong, so something had to be done. Submitted by: Reviewed by: PR:
This commit is contained in:
parent
93c5624f04
commit
84a370a400
@ -165,7 +165,7 @@ int BN_hex2bn(BIGNUM **bn, char *a)
|
||||
|
||||
if (*a == '-') { neg=1; a++; }
|
||||
|
||||
for (i=0; isxdigit(a[i]); i++)
|
||||
for (i=0; isxdigit((unsigned char) a[i]); i++)
|
||||
;
|
||||
|
||||
num=i+neg;
|
||||
@ -230,7 +230,7 @@ int BN_dec2bn(BIGNUM **bn, char *a)
|
||||
if ((a == NULL) || (*a == '\0')) return(0);
|
||||
if (*a == '-') { neg=1; a++; }
|
||||
|
||||
for (i=0; isdigit(a[i]); i++)
|
||||
for (i=0; isdigit((unsigned char) a[i]); i++)
|
||||
;
|
||||
|
||||
num=i+neg;
|
||||
|
@ -512,26 +512,26 @@ int OBJ_create_objects(BIO *in)
|
||||
i=BIO_gets(in,buf,512);
|
||||
if (i <= 0) return(num);
|
||||
buf[i-1]='\0';
|
||||
if (!isalnum(buf[0])) return(num);
|
||||
if (!isalnum((unsigned char)buf[0])) return(num);
|
||||
o=s=buf;
|
||||
while (isdigit(*s) || (*s == '.'))
|
||||
while (isdigit((unsigned char)*s) || (*s == '.'))
|
||||
s++;
|
||||
if (*s != '\0')
|
||||
{
|
||||
*(s++)='\0';
|
||||
while (isspace(*s))
|
||||
while (isspace((unsigned char)*s))
|
||||
s++;
|
||||
if (*s == '\0')
|
||||
s=NULL;
|
||||
else
|
||||
{
|
||||
l=s;
|
||||
while ((*l != '\0') && !isspace(*l))
|
||||
while ((*l != '\0') && !isspace((unsigned char)*l))
|
||||
l++;
|
||||
if (*l != '\0')
|
||||
{
|
||||
*(l++)='\0';
|
||||
while (isspace(*l))
|
||||
while (isspace((unsigned char)*l))
|
||||
l++;
|
||||
if (*l == '\0') l=NULL;
|
||||
}
|
||||
|
@ -203,7 +203,7 @@ static int v3_check_critical(char **value)
|
||||
char *p = *value;
|
||||
if((strlen(p) < 9) || strncmp(p, "critical,", 9)) return 0;
|
||||
p+=9;
|
||||
while(isspace(*p)) p++;
|
||||
while(isspace((unsigned char)*p)) p++;
|
||||
*value = p;
|
||||
return 1;
|
||||
}
|
||||
@ -214,7 +214,7 @@ static int v3_check_generic(char **value)
|
||||
char *p = *value;
|
||||
if((strlen(p) < 4) || strncmp(p, "RAW:,", 4)) return 0;
|
||||
p+=4;
|
||||
while(isspace(*p)) p++;
|
||||
while(isspace((unsigned char)*p)) p++;
|
||||
*value = p;
|
||||
return 1;
|
||||
}
|
||||
|
@ -311,10 +311,10 @@ static char *strip_spaces(char *name)
|
||||
char *p, *q;
|
||||
/* Skip over leading spaces */
|
||||
p = name;
|
||||
while(*p && isspace(*p)) p++;
|
||||
while(*p && isspace((unsigned char)*p)) p++;
|
||||
if(!*p) return NULL;
|
||||
q = p + strlen(p) - 1;
|
||||
while((q != p) && isspace(*q)) q--;
|
||||
while((q != p) && isspace((unsigned char)*q)) q--;
|
||||
if(p != q) q[1] = 0;
|
||||
if(!*p) return NULL;
|
||||
return p;
|
||||
|
Loading…
x
Reference in New Issue
Block a user