Submitted by: Damien Miller <djm@mindrot.org>
Reviewed by: steve
Stop pkeyutl crashing if some arguments are missing. Also make str2fmt
tolerate NULL parameter.
+ if (s == NULL)
+ return FORMAT_UNDEF;
if ((*s == 'D') || (*s == 'd'))
return(FORMAT_ASN1);
else if ((*s == 'T') || (*s == 't'))
if ((*s == 'D') || (*s == 'd'))
return(FORMAT_ASN1);
else if ((*s == 'T') || (*s == 't'))
if (!strcmp(*argv,"-in"))
{
if (--argc < 1) badarg = 1;
if (!strcmp(*argv,"-in"))
{
if (--argc < 1) badarg = 1;
+ else infile= *(++argv);
}
else if (!strcmp(*argv,"-out"))
{
if (--argc < 1) badarg = 1;
}
else if (!strcmp(*argv,"-out"))
{
if (--argc < 1) badarg = 1;
+ else outfile= *(++argv);
}
else if (!strcmp(*argv,"-sigfile"))
{
if (--argc < 1) badarg = 1;
}
else if (!strcmp(*argv,"-sigfile"))
{
if (--argc < 1) badarg = 1;
+ else sigfile= *(++argv);
}
else if(!strcmp(*argv, "-inkey"))
{
}
else if(!strcmp(*argv, "-inkey"))
{
else if (!strcmp(*argv,"-passin"))
{
if (--argc < 1) badarg = 1;
else if (!strcmp(*argv,"-passin"))
{
if (--argc < 1) badarg = 1;
+ else passargin= *(++argv);
}
else if (strcmp(*argv,"-peerform") == 0)
{
if (--argc < 1) badarg = 1;
}
else if (strcmp(*argv,"-peerform") == 0)
{
if (--argc < 1) badarg = 1;
- peerform=str2fmt(*(++argv));
+ else peerform=str2fmt(*(++argv));
}
else if (strcmp(*argv,"-keyform") == 0)
{
if (--argc < 1) badarg = 1;
}
else if (strcmp(*argv,"-keyform") == 0)
{
if (--argc < 1) badarg = 1;
- keyform=str2fmt(*(++argv));
+ else keyform=str2fmt(*(++argv));
}
#ifndef OPENSSL_NO_ENGINE
else if(!strcmp(*argv, "-engine"))
}
#ifndef OPENSSL_NO_ENGINE
else if(!strcmp(*argv, "-engine"))