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:
Bodo Möller 1999-05-10 11:18:26 +00:00
parent 93c5624f04
commit 84a370a400
4 changed files with 11 additions and 11 deletions

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;