mirror of
https://github.com/clearml/dropbear
synced 2025-01-31 10:57:01 +00:00
merge of 'b1dd3b94e60a07a176dba2b035ac79968595990a'
and 'bcb33fce2fad01a7626598209d43af3571bd86f0' --HG-- extra : convert_revision : 691c56da3db2685f58ea53540a73c1b79e7df9cd
This commit is contained in:
commit
fd304d763a
@ -60,8 +60,8 @@ void cli_pubkeyfail() {
|
||||
|
||||
void recv_msg_userauth_pk_ok() {
|
||||
|
||||
struct SignKeyList *keyitem;
|
||||
buffer* keybuf;
|
||||
struct SignKeyList *keyitem = NULL;
|
||||
buffer* keybuf = NULL;
|
||||
char* algotype = NULL;
|
||||
unsigned int algolen;
|
||||
int keytype;
|
||||
@ -122,6 +122,8 @@ void recv_msg_userauth_pk_ok() {
|
||||
} else {
|
||||
TRACE(("That was whacky. We got told that a key was valid, but it didn't match our list. Sounds like dodgy code on Dropbear's part"))
|
||||
}
|
||||
|
||||
buf_free(keybuf);
|
||||
|
||||
TRACE(("leave recv_msg_userauth_pk_ok"))
|
||||
}
|
||||
|
@ -373,8 +373,7 @@ static void addforward(char* origstr, struct TCPFwdList** fwdlist) {
|
||||
TRACE(("connectaddr == NULL"))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
connectaddr[0] = '\0';
|
||||
*connectaddr = '\0';
|
||||
connectaddr++;
|
||||
|
||||
connectport = strchr(connectaddr, ':');
|
||||
@ -382,8 +381,7 @@ static void addforward(char* origstr, struct TCPFwdList** fwdlist) {
|
||||
TRACE(("connectport == NULL"))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
connectport[0] = '\0';
|
||||
*connectport = '\0';
|
||||
connectport++;
|
||||
|
||||
newfwd = (struct TCPFwdList*)m_malloc(sizeof(struct TCPFwdList));
|
||||
@ -417,6 +415,8 @@ static void addforward(char* origstr, struct TCPFwdList** fwdlist) {
|
||||
newfwd->next = *fwdlist;
|
||||
*fwdlist = newfwd;
|
||||
|
||||
m_free(str);
|
||||
|
||||
TRACE(("leave addforward: done"))
|
||||
return;
|
||||
|
||||
|
@ -31,6 +31,8 @@
|
||||
|
||||
/* Mappings for ciphers, parameters are
|
||||
{&cipher_desc, keysize, blocksize} */
|
||||
/* NOTE: if keysize > 2*SHA1_HASH_SIZE, code such as hashkeys()
|
||||
needs revisiting */
|
||||
|
||||
#ifdef DROPBEAR_AES256_CBC
|
||||
static const struct dropbear_cipher dropbear_aes256 =
|
||||
|
@ -217,12 +217,10 @@ static void kexinitialise() {
|
||||
* already initialised hash_state hs, which should already have processed
|
||||
* the dh_K and hash, since these are common. X is the letter 'A', 'B' etc.
|
||||
* out must have at least min(SHA1_HASH_SIZE, outlen) bytes allocated.
|
||||
* The output will only be expanded once, since that is all that is required
|
||||
* (for 3DES and SHA, with 24 and 20 bytes respectively).
|
||||
* The output will only be expanded once, as we are assured that
|
||||
* outlen <= 2*SHA1_HASH_SIZE for all known hashes.
|
||||
*
|
||||
* See Section 5.2 of the IETF secsh Transport Draft for details */
|
||||
|
||||
/* Duplicated verbatim from kex.c --mihnea */
|
||||
* See Section 7.2 of rfc4253 (ssh transport) for details */
|
||||
static void hashkeys(unsigned char *out, int outlen,
|
||||
const hash_state * hs, const unsigned char X) {
|
||||
|
||||
|
4
dbutil.c
4
dbutil.c
@ -286,9 +286,9 @@ int dropbear_listen(const char* address, const char* port,
|
||||
len = 20 + strlen(strerror(err));
|
||||
*errstring = (char*)m_malloc(len);
|
||||
snprintf(*errstring, len, "Error listening: %s", strerror(err));
|
||||
TRACE(("leave dropbear_listen: failure, %s", strerror(err)))
|
||||
return -1;
|
||||
}
|
||||
TRACE(("leave dropbear_listen: failure, %s", strerror(err)))
|
||||
return -1;
|
||||
}
|
||||
|
||||
TRACE(("leave dropbear_listen: success, %d socks bound", nsock))
|
||||
|
3
random.c
3
random.c
@ -234,8 +234,7 @@ void gen_random_mpint(mp_int *max, mp_int *rand) {
|
||||
|
||||
/* keep regenerating until we get one satisfying
|
||||
* 0 < rand < max */
|
||||
} while ( ( (max != NULL) && (mp_cmp(rand, max) != MP_LT) )
|
||||
|| (mp_cmp_d(rand, 0) != MP_GT) );
|
||||
} while (mp_cmp(rand, max) != MP_LT);
|
||||
m_burn(randbuf, len);
|
||||
m_free(randbuf);
|
||||
}
|
||||
|
@ -181,10 +181,15 @@ void svr_dropbear_log(int priority, const char* format, va_list param) {
|
||||
|
||||
if (!svr_opts.usingsyslog || havetrace)
|
||||
{
|
||||
struct tm * local_tm = NULL;
|
||||
timesec = time(NULL);
|
||||
if (strftime(datestr, sizeof(datestr), "%b %d %H:%M:%S",
|
||||
localtime(×ec)) == 0) {
|
||||
datestr[0] = '?'; datestr[1] = '\0';
|
||||
local_tm = localtime(×ec);
|
||||
if (local_tm == NULL
|
||||
|| strftime(datestr, sizeof(datestr), "%b %d %H:%M:%S",
|
||||
localtime(×ec)) == 0)
|
||||
{
|
||||
// upon failure, just print the epoch-seconds time.
|
||||
snprintf(datestr, sizeof(datestr), "%d", timesec);
|
||||
}
|
||||
fprintf(stderr, "[%d] %s %s\n", getpid(), datestr, printbuf);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user