os400: os400qc3.c: replace malloc by LIBSSH2_ALLOC or alloca where possible
This commit is contained in:
parent
e2985f0a67
commit
8b720f342f
@ -832,9 +832,9 @@ _libssh2_os400qc3_bn_mod_exp(_libssh2_bn *r, _libssh2_bn *a, _libssh2_bn *p,
|
|||||||
_libssh2_bn *rp;
|
_libssh2_bn *rp;
|
||||||
asn1Element *rsapubkey;
|
asn1Element *rsapubkey;
|
||||||
asn1Element *subjpubkeyinfo;
|
asn1Element *subjpubkeyinfo;
|
||||||
unsigned char *av = NULL;
|
unsigned char *av;
|
||||||
unsigned char *rv = NULL;
|
unsigned char *rv;
|
||||||
char *keydbuf = NULL;
|
char *keydbuf;
|
||||||
Qc3_Format_ALGD0400_T algd;
|
Qc3_Format_ALGD0400_T algd;
|
||||||
Qc3_Format_KEYD0200_T *keyd;
|
Qc3_Format_KEYD0200_T *keyd;
|
||||||
Qus_EC_t errcode;
|
Qus_EC_t errcode;
|
||||||
@ -879,9 +879,9 @@ _libssh2_os400qc3_bn_mod_exp(_libssh2_bn *r, _libssh2_bn *a, _libssh2_bn *p,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
av = (unsigned char *) malloc(a->length);
|
av = (unsigned char *) alloca(a->length);
|
||||||
rv = (unsigned char *) malloc(mp->length);
|
rv = (unsigned char *) alloca(mp->length);
|
||||||
keydbuf = malloc(sizeof *keyd +
|
keydbuf = alloca(sizeof *keyd +
|
||||||
subjpubkeyinfo->end - subjpubkeyinfo->header);
|
subjpubkeyinfo->end - subjpubkeyinfo->header);
|
||||||
|
|
||||||
if (av && rv && keydbuf) {
|
if (av && rv && keydbuf) {
|
||||||
@ -921,12 +921,6 @@ _libssh2_os400qc3_bn_mod_exp(_libssh2_bn *r, _libssh2_bn *a, _libssh2_bn *p,
|
|||||||
}
|
}
|
||||||
asn1delete(subjpubkeyinfo);
|
asn1delete(subjpubkeyinfo);
|
||||||
_libssh2_bn_free(mp);
|
_libssh2_bn_free(mp);
|
||||||
if (av)
|
|
||||||
free((char *) av);
|
|
||||||
if (rv)
|
|
||||||
free((char *) rv);
|
|
||||||
if (keydbuf)
|
|
||||||
free(keydbuf);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1363,7 +1357,8 @@ rsapkcs8pubkey(LIBSSH2_SESSION *session,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
pkcs1topkcs8(const unsigned char **data8, unsigned int *datalen8,
|
pkcs1topkcs8(LIBSSH2_SESSION *session,
|
||||||
|
const unsigned char **data8, unsigned int *datalen8,
|
||||||
const unsigned char *data1, unsigned int datalen1)
|
const unsigned char *data1, unsigned int datalen1)
|
||||||
{
|
{
|
||||||
asn1Element *prvk;
|
asn1Element *prvk;
|
||||||
@ -1385,7 +1380,7 @@ pkcs1topkcs8(const unsigned char **data8, unsigned int *datalen8,
|
|||||||
}
|
}
|
||||||
if (!pkcs8)
|
if (!pkcs8)
|
||||||
return -1;
|
return -1;
|
||||||
data = (unsigned char *) malloc(pkcs8->end - pkcs8->header);
|
data = (unsigned char *) LIBSSH2_ALLOC(session, pkcs8->end - pkcs8->header);
|
||||||
if (!data) {
|
if (!data) {
|
||||||
asn1delete(pkcs8);
|
asn1delete(pkcs8);
|
||||||
return -1;
|
return -1;
|
||||||
@ -1406,10 +1401,10 @@ rsapkcs1privkey(LIBSSH2_SESSION *session,
|
|||||||
unsigned int datalen8;
|
unsigned int datalen8;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (pkcs1topkcs8(&data8, &datalen8, data, datalen))
|
if (pkcs1topkcs8(session, &data8, &datalen8, data, datalen))
|
||||||
return -1;
|
return -1;
|
||||||
ret = rsapkcs8privkey(session, data8, datalen8, passphrase, loadkeydata);
|
ret = rsapkcs8privkey(session, data8, datalen8, passphrase, loadkeydata);
|
||||||
free((char *) data8);
|
LIBSSH2_FREE(session, (char *) data8);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1422,10 +1417,10 @@ rsapkcs1pubkey(LIBSSH2_SESSION *session,
|
|||||||
unsigned int datalen8;
|
unsigned int datalen8;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (pkcs1topkcs8(&data8, &datalen8, data, datalen))
|
if (pkcs1topkcs8(session, &data8, &datalen8, data, datalen))
|
||||||
return -1;
|
return -1;
|
||||||
ret = rsapkcs8pubkey(session, data8, datalen8, passphrase, loadkeydata);
|
ret = rsapkcs8pubkey(session, data8, datalen8, passphrase, loadkeydata);
|
||||||
free((char *) data8);
|
LIBSSH2_FREE(session, (char *) data8);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1498,7 +1493,7 @@ load_rsa_private_file(LIBSSH2_SESSION *session, const char *filename,
|
|||||||
|
|
||||||
if (filesize <= 32768) { /* Limit to a reasonable size. */
|
if (filesize <= 32768) { /* Limit to a reasonable size. */
|
||||||
datalen = filesize;
|
datalen = filesize;
|
||||||
data = (unsigned char *) malloc(datalen);
|
data = (unsigned char *) alloca(datalen);
|
||||||
if (data) {
|
if (data) {
|
||||||
fseek(fp, 0L, SEEK_SET);
|
fseek(fp, 0L, SEEK_SET);
|
||||||
fread(data, datalen, 1, fp);
|
fread(data, datalen, 1, fp);
|
||||||
@ -1507,7 +1502,6 @@ load_rsa_private_file(LIBSSH2_SESSION *session, const char *filename,
|
|||||||
if (ret)
|
if (ret)
|
||||||
ret = (*proc1)(session, data, datalen, passphrase,
|
ret = (*proc1)(session, data, datalen, passphrase,
|
||||||
loadkeydata);
|
loadkeydata);
|
||||||
free((char *) data);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user