mirror of
https://github.com/openssl/openssl.git
synced 2024-12-16 05:23:50 +08:00
Introduce PATH_MAX and NAME_MAX
to define the certificate filename storage buffer. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1569)
This commit is contained in:
parent
3a19b22ae1
commit
dfc3ffe502
16
apps/ca.c
16
apps/ca.c
@ -47,8 +47,14 @@
|
||||
# define R_OK 4
|
||||
#endif
|
||||
|
||||
#undef BSIZE
|
||||
#define BSIZE 256
|
||||
#ifndef PATH_MAX
|
||||
# define PATH_MAX 4096
|
||||
#endif
|
||||
#ifndef NAME_MAX
|
||||
# define NAME_MAX 255
|
||||
#endif
|
||||
|
||||
#define CERT_MAX (PATH_MAX + NAME_MAX)
|
||||
|
||||
#define BASE_SECTION "ca"
|
||||
|
||||
@ -246,7 +252,7 @@ int ca_main(int argc, char **argv)
|
||||
const char *serialfile = NULL, *subj = NULL;
|
||||
char *prog, *startdate = NULL, *enddate = NULL;
|
||||
char *dbfile = NULL, *f, *randfile = NULL;
|
||||
char new_cert[BSIZE] = { 0 };
|
||||
char new_cert[CERT_MAX + 1];
|
||||
char tmp[10 + 1] = "\0";
|
||||
char *const *pp;
|
||||
const char *p;
|
||||
@ -262,6 +268,8 @@ int ca_main(int argc, char **argv)
|
||||
X509_REVOKED *r = NULL;
|
||||
OPTION_CHOICE o;
|
||||
|
||||
new_cert[CERT_MAX] = '\0';
|
||||
|
||||
prog = opt_init(argc, argv, ca_options);
|
||||
while ((o = opt_next()) != OPT_EOF) {
|
||||
switch (o) {
|
||||
@ -988,7 +996,7 @@ end_of_options:
|
||||
j = ASN1_STRING_length(serialNumber);
|
||||
p = (const char *)ASN1_STRING_get0_data(serialNumber);
|
||||
|
||||
if (strlen(outdir) >= (size_t)(j ? BSIZE - j * 2 - 6 : BSIZE - 8)) {
|
||||
if (strlen(outdir) >= (size_t)(j ? CERT_MAX - j * 2 - 6 : CERT_MAX - 8)) {
|
||||
BIO_printf(bio_err, "certificate file name too long\n");
|
||||
goto end;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user