mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
Fix DSA to skip EOL test when parsing mod line.
This commit is contained in:
parent
49e9b97885
commit
8d7fbd021b
@ -41,7 +41,7 @@ static int parse_mod(char *line, int *pdsa2, int *pL, int *pN,
|
|||||||
}
|
}
|
||||||
*pdsa2 = 1;
|
*pdsa2 = 1;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
if (!parse_line(&keyword, &value, lbuf, line))
|
if (!parse_line2(&keyword, &value, lbuf, line, 0))
|
||||||
return 0;
|
return 0;
|
||||||
if (strcmp(keyword, "L"))
|
if (strcmp(keyword, "L"))
|
||||||
return 0;
|
return 0;
|
||||||
@ -54,7 +54,7 @@ static int parse_mod(char *line, int *pdsa2, int *pL, int *pN,
|
|||||||
if (!p)
|
if (!p)
|
||||||
return 0;
|
return 0;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
if (!parse_line(&keyword, &value, lbuf, line))
|
if (!parse_line2(&keyword, &value, lbuf, line, 0))
|
||||||
return 0;
|
return 0;
|
||||||
if (strcmp(keyword, "N"))
|
if (strcmp(keyword, "N"))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -58,6 +58,7 @@ int do_hex2bn(BIGNUM **pr, const char *in);
|
|||||||
int do_bn_print(FILE *out, const BIGNUM *bn);
|
int do_bn_print(FILE *out, const BIGNUM *bn);
|
||||||
int do_bn_print_name(FILE *out, const char *name, const BIGNUM *bn);
|
int do_bn_print_name(FILE *out, const char *name, const BIGNUM *bn);
|
||||||
int parse_line(char **pkw, char **pval, char *linebuf, char *olinebuf);
|
int parse_line(char **pkw, char **pval, char *linebuf, char *olinebuf);
|
||||||
|
int parse_line2(char **pkw, char **pval, char *linebuf, char *olinebuf, int eol);
|
||||||
BIGNUM *hex2bn(const char *in);
|
BIGNUM *hex2bn(const char *in);
|
||||||
int tidy_line(char *linebuf, char *olinebuf);
|
int tidy_line(char *linebuf, char *olinebuf);
|
||||||
int bint2bin(const char *in, int len, unsigned char *out);
|
int bint2bin(const char *in, int len, unsigned char *out);
|
||||||
@ -261,6 +262,11 @@ int do_bn_print_name(FILE *out, const char *name, const BIGNUM *bn)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int parse_line(char **pkw, char **pval, char *linebuf, char *olinebuf)
|
int parse_line(char **pkw, char **pval, char *linebuf, char *olinebuf)
|
||||||
|
{
|
||||||
|
return parse_line2(pkw, pval, linebuf, olinebuf, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int parse_line2(char **pkw, char **pval, char *linebuf, char *olinebuf, int eol)
|
||||||
{
|
{
|
||||||
char *keyword, *value, *p, *q;
|
char *keyword, *value, *p, *q;
|
||||||
strcpy(linebuf, olinebuf);
|
strcpy(linebuf, olinebuf);
|
||||||
@ -292,7 +298,7 @@ int parse_line(char **pkw, char **pval, char *linebuf, char *olinebuf)
|
|||||||
/* Remove trailing space from value */
|
/* Remove trailing space from value */
|
||||||
p = value + strlen(value) - 1;
|
p = value + strlen(value) - 1;
|
||||||
|
|
||||||
if (*p != '\n')
|
if (eol && *p != '\n')
|
||||||
fprintf(stderr, "Warning: missing EOL\n");
|
fprintf(stderr, "Warning: missing EOL\n");
|
||||||
|
|
||||||
while (*p == '\n' || isspace((unsigned char)*p))
|
while (*p == '\n' || isspace((unsigned char)*p))
|
||||||
|
Loading…
Reference in New Issue
Block a user