mirror of
https://github.com/clearml/dropbear
synced 2025-03-13 07:08:26 +00:00
Use buf_burn_free() instead of two calls
This commit is contained in:
parent
81e3977360
commit
cb9a00951f
2
bignum.c
2
bignum.c
@ -100,5 +100,5 @@ void hash_process_mp(const struct ltc_hash_descriptor *hash_desc,
|
|||||||
plus header + some leeway*/
|
plus header + some leeway*/
|
||||||
buf_putmpint(buf, mp);
|
buf_putmpint(buf, mp);
|
||||||
hash_desc->process(hs, buf->data, buf->len);
|
hash_desc->process(hs, buf->data, buf->len);
|
||||||
buf_free(buf);
|
buf_burn_free(buf);
|
||||||
}
|
}
|
||||||
|
6
buffer.c
6
buffer.c
@ -55,11 +55,13 @@ void buf_free(buffer* buf) {
|
|||||||
m_free(buf);
|
m_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* overwrite the contents of the buffer to clear it */
|
/* overwrite the contents of the buffer then free it */
|
||||||
void buf_burn(const buffer* buf) {
|
void buf_burn_free(buffer* buf) {
|
||||||
m_burn(buf->data, buf->size);
|
m_burn(buf->data, buf->size);
|
||||||
|
m_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* resize a buffer, pos and len will be repositioned if required when
|
/* resize a buffer, pos and len will be repositioned if required when
|
||||||
* downsizing */
|
* downsizing */
|
||||||
buffer* buf_resize(buffer *buf, unsigned int newsize) {
|
buffer* buf_resize(buffer *buf, unsigned int newsize) {
|
||||||
|
2
buffer.h
2
buffer.h
@ -44,7 +44,7 @@ buffer * buf_new(unsigned int size);
|
|||||||
/* Possibly returns a new buffer*, like realloc() */
|
/* Possibly returns a new buffer*, like realloc() */
|
||||||
buffer * buf_resize(buffer *buf, unsigned int newsize);
|
buffer * buf_resize(buffer *buf, unsigned int newsize);
|
||||||
void buf_free(buffer* buf);
|
void buf_free(buffer* buf);
|
||||||
void buf_burn(const buffer* buf);
|
void buf_burn_free(buffer* buf);
|
||||||
buffer* buf_newcopy(const buffer* buf);
|
buffer* buf_newcopy(const buffer* buf);
|
||||||
void buf_setlen(buffer* buf, unsigned int len);
|
void buf_setlen(buffer* buf, unsigned int len);
|
||||||
void buf_incrlen(buffer* buf, unsigned int incr);
|
void buf_incrlen(buffer* buf, unsigned int incr);
|
||||||
|
@ -306,8 +306,7 @@ static void gen_new_keys() {
|
|||||||
mp_clear(ses.dh_K);
|
mp_clear(ses.dh_K);
|
||||||
m_free(ses.dh_K);
|
m_free(ses.dh_K);
|
||||||
hash_desc->process(&hs, ses.hash->data, ses.hash->len);
|
hash_desc->process(&hs, ses.hash->data, ses.hash->len);
|
||||||
buf_burn(ses.hash);
|
buf_burn_free(ses.hash);
|
||||||
buf_free(ses.hash);
|
|
||||||
ses.hash = NULL;
|
ses.hash = NULL;
|
||||||
|
|
||||||
if (IS_DROPBEAR_CLIENT) {
|
if (IS_DROPBEAR_CLIENT) {
|
||||||
@ -803,8 +802,7 @@ void finish_kexhashbuf(void) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
buf_burn(ses.kexhashbuf);
|
buf_burn_free(ses.kexhashbuf);
|
||||||
buf_free(ses.kexhashbuf);
|
|
||||||
m_burn(&hs, sizeof(hash_state));
|
m_burn(&hs, sizeof(hash_state));
|
||||||
ses.kexhashbuf = NULL;
|
ses.kexhashbuf = NULL;
|
||||||
|
|
||||||
|
@ -57,8 +57,7 @@ int readhostkey(const char * filename, sign_key * hostkey,
|
|||||||
ret = DROPBEAR_SUCCESS;
|
ret = DROPBEAR_SUCCESS;
|
||||||
out:
|
out:
|
||||||
|
|
||||||
buf_burn(buf);
|
buf_burn_free(buf);
|
||||||
buf_free(buf);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,8 +285,7 @@ static void cleanup_buf(buffer **buf) {
|
|||||||
if (!*buf) {
|
if (!*buf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
buf_burn(*buf);
|
buf_burn_free(*buf);
|
||||||
buf_free(*buf);
|
|
||||||
*buf = NULL;
|
*buf = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,8 +309,7 @@ static int printpubfile(const char* filename) {
|
|||||||
err = DROPBEAR_SUCCESS;
|
err = DROPBEAR_SUCCESS;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
buf_burn(buf);
|
buf_burn_free(buf);
|
||||||
buf_free(buf);
|
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
if (key) {
|
if (key) {
|
||||||
sign_key_free(key);
|
sign_key_free(key);
|
||||||
|
@ -181,8 +181,7 @@ int signkey_generate(enum signkey_type keytype, int bits, const char* filename,
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
if (buf) {
|
if (buf) {
|
||||||
buf_burn(buf);
|
buf_burn_free(buf);
|
||||||
buf_free(buf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fn_temp) {
|
if (fn_temp) {
|
||||||
|
18
keyimport.c
18
keyimport.c
@ -504,16 +504,14 @@ static struct openssh_key *load_openssh_key(const char *filename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (buf) {
|
if (buf) {
|
||||||
buf_burn(buf);
|
buf_burn_free(buf);
|
||||||
buf_free(buf);
|
|
||||||
}
|
}
|
||||||
m_burn(buffer, sizeof(buffer));
|
m_burn(buffer, sizeof(buffer));
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
if (buf) {
|
if (buf) {
|
||||||
buf_burn(buf);
|
buf_burn_free(buf);
|
||||||
buf_free(buf);
|
|
||||||
}
|
}
|
||||||
m_burn(buffer, sizeof(buffer));
|
m_burn(buffer, sizeof(buffer));
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -898,8 +896,7 @@ static sign_key *openssh_read(const char *filename, const char * UNUSED(passphra
|
|||||||
|
|
||||||
error:
|
error:
|
||||||
if (blobbuf) {
|
if (blobbuf) {
|
||||||
buf_burn(blobbuf);
|
buf_burn_free(blobbuf);
|
||||||
buf_free(blobbuf);
|
|
||||||
}
|
}
|
||||||
m_burn(key->keyblob, key->keyblob_size);
|
m_burn(key->keyblob, key->keyblob_size);
|
||||||
m_free(key->keyblob);
|
m_free(key->keyblob);
|
||||||
@ -1070,8 +1067,7 @@ static int openssh_write(const char *filename, sign_key *key,
|
|||||||
outblob = (unsigned char*)m_malloc(outlen);
|
outblob = (unsigned char*)m_malloc(outlen);
|
||||||
memcpy(outblob, buf->data, buf->len);
|
memcpy(outblob, buf->data, buf->len);
|
||||||
|
|
||||||
buf_burn(buf);
|
buf_burn_free(buf);
|
||||||
buf_free(buf);
|
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
|
|
||||||
header = "-----BEGIN OPENSSH PRIVATE KEY-----\n";
|
header = "-----BEGIN OPENSSH PRIVATE KEY-----\n";
|
||||||
@ -1133,12 +1129,10 @@ static int openssh_write(const char *filename, sign_key *key,
|
|||||||
m_free(outblob);
|
m_free(outblob);
|
||||||
}
|
}
|
||||||
if (keyblob) {
|
if (keyblob) {
|
||||||
buf_burn(keyblob);
|
buf_burn_free(keyblob);
|
||||||
buf_free(keyblob);
|
|
||||||
}
|
}
|
||||||
if (extrablob) {
|
if (extrablob) {
|
||||||
buf_burn(extrablob);
|
buf_burn_free(extrablob);
|
||||||
buf_free(extrablob);
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user