mirror of
https://github.com/clearml/dropbear
synced 2025-05-17 10:03:30 +00:00
propagate from branch 'au.asn.ucc.matt.dropbear' (head bbe4e11695a7b22bd89a722600eb4a4020b6fdf3)
to branch 'au.asn.ucc.matt.dropbear.cli-agent' (head 276cf5e82276b6c879d246ba64739ec6868f5150) --HG-- branch : agent-client extra : convert_revision : d23b0c21649eb2f0b2d13dbf33c0a9faca25628a
This commit is contained in:
commit
bacd2a8c79
@ -371,7 +371,9 @@ static void gen_new_zstreams() {
|
|||||||
ses.newkeys->trans.zstream->zalloc = Z_NULL;
|
ses.newkeys->trans.zstream->zalloc = Z_NULL;
|
||||||
ses.newkeys->trans.zstream->zfree = Z_NULL;
|
ses.newkeys->trans.zstream->zfree = Z_NULL;
|
||||||
|
|
||||||
if (deflateInit(ses.newkeys->trans.zstream, Z_DEFAULT_COMPRESSION)
|
if (deflateInit2(ses.newkeys->trans.zstream, Z_DEFAULT_COMPRESSION,
|
||||||
|
Z_DEFLATED, DROPBEAR_ZLIB_WINDOW_BITS,
|
||||||
|
DROPBEAR_ZLIB_MEM_LEVEL, Z_DEFAULT_STRATEGY)
|
||||||
!= Z_OK) {
|
!= Z_OK) {
|
||||||
dropbear_exit("zlib error");
|
dropbear_exit("zlib error");
|
||||||
}
|
}
|
||||||
|
24
options.h
24
options.h
@ -87,7 +87,8 @@ much traffic. */
|
|||||||
#define DROPBEAR_AES128
|
#define DROPBEAR_AES128
|
||||||
#define DROPBEAR_3DES
|
#define DROPBEAR_3DES
|
||||||
#define DROPBEAR_AES256
|
#define DROPBEAR_AES256
|
||||||
#define DROPBEAR_BLOWFISH
|
/* Compiling in Blowfish will add ~6kB to runtime heap memory usage */
|
||||||
|
/*#define DROPBEAR_BLOWFISH*/
|
||||||
#define DROPBEAR_TWOFISH256
|
#define DROPBEAR_TWOFISH256
|
||||||
#define DROPBEAR_TWOFISH128
|
#define DROPBEAR_TWOFISH128
|
||||||
|
|
||||||
@ -130,6 +131,21 @@ much traffic. */
|
|||||||
* if the random number source isn't good. In general this isn't required */
|
* if the random number source isn't good. In general this isn't required */
|
||||||
/* #define DSS_PROTOK */
|
/* #define DSS_PROTOK */
|
||||||
|
|
||||||
|
/* Control the memory/performance/compression tradeoff for zlib.
|
||||||
|
* Set windowBits=8, memLevel=1 for least memory usage, see your system's
|
||||||
|
* zlib.h for full details.
|
||||||
|
* Default settings (windowBits=15, memLevel=8) will use
|
||||||
|
* 256kB for compression + 32kB for decompression.
|
||||||
|
* windowBits=8, memLevel=1 will use 10kB compression + 32kB decompression.
|
||||||
|
* Note that windowBits is only set for deflate() - inflate() always uses the
|
||||||
|
* default of 15 so as to interoperate with other clients. */
|
||||||
|
#ifndef DROPBEAR_ZLIB_WINDOW_BITS
|
||||||
|
#define DROPBEAR_ZLIB_WINDOW_BITS 15
|
||||||
|
#endif
|
||||||
|
#ifndef DROPBEAR_ZLIB_MEM_LEVEL
|
||||||
|
#define DROPBEAR_ZLIB_MEM_LEVEL 8
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Whether to do reverse DNS lookups. */
|
/* Whether to do reverse DNS lookups. */
|
||||||
#define DO_HOST_LOOKUP
|
#define DO_HOST_LOOKUP
|
||||||
|
|
||||||
@ -248,13 +264,19 @@ much traffic. */
|
|||||||
significant difference to network performance. 24kB was empirically
|
significant difference to network performance. 24kB was empirically
|
||||||
chosen for a 100mbit ethernet network. The value can be altered at
|
chosen for a 100mbit ethernet network. The value can be altered at
|
||||||
runtime with the -W argument. */
|
runtime with the -W argument. */
|
||||||
|
#ifndef DEFAULT_RECV_WINDOW
|
||||||
#define DEFAULT_RECV_WINDOW 24576
|
#define DEFAULT_RECV_WINDOW 24576
|
||||||
|
#endif
|
||||||
/* Maximum size of a received SSH data packet - this _MUST_ be >= 32768
|
/* Maximum size of a received SSH data packet - this _MUST_ be >= 32768
|
||||||
in order to interoperate with other implementations */
|
in order to interoperate with other implementations */
|
||||||
|
#ifndef RECV_MAX_PAYLOAD_LEN
|
||||||
#define RECV_MAX_PAYLOAD_LEN 32768
|
#define RECV_MAX_PAYLOAD_LEN 32768
|
||||||
|
#endif
|
||||||
/* Maximum size of a transmitted data packet - this can be any value,
|
/* Maximum size of a transmitted data packet - this can be any value,
|
||||||
though increasing it may not make a significant difference. */
|
though increasing it may not make a significant difference. */
|
||||||
|
#ifndef TRANS_MAX_PAYLOAD_LEN
|
||||||
#define TRANS_MAX_PAYLOAD_LEN 16384
|
#define TRANS_MAX_PAYLOAD_LEN 16384
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Ensure that data is transmitted every KEEPALIVE seconds. This can
|
/* Ensure that data is transmitted every KEEPALIVE seconds. This can
|
||||||
be overridden at runtime with -K. 0 disables keepalives */
|
be overridden at runtime with -K. 0 disables keepalives */
|
||||||
|
2
packet.c
2
packet.c
@ -261,7 +261,7 @@ void decrypt_packet() {
|
|||||||
|
|
||||||
/* payload length */
|
/* payload length */
|
||||||
/* - 4 - 1 is for LEN and PADLEN values */
|
/* - 4 - 1 is for LEN and PADLEN values */
|
||||||
len = ses.readbuf->len - padlen - 4 - 1;
|
len = ses.readbuf->len - padlen - 4 - 1 - macsize;
|
||||||
if ((len > RECV_MAX_PAYLOAD_LEN) || (len < 1)) {
|
if ((len > RECV_MAX_PAYLOAD_LEN) || (len < 1)) {
|
||||||
dropbear_exit("bad packet size");
|
dropbear_exit("bad packet size");
|
||||||
}
|
}
|
||||||
|
@ -213,6 +213,10 @@ struct serversession {
|
|||||||
/* The numeric address they connected from, used for logging */
|
/* The numeric address they connected from, used for logging */
|
||||||
char * addrstring;
|
char * addrstring;
|
||||||
|
|
||||||
|
#ifdef __uClinux__
|
||||||
|
pid_t server_pid;
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -85,6 +85,10 @@ void svr_session(int sock, int childpipe,
|
|||||||
/* Initialise server specific parts of the session */
|
/* Initialise server specific parts of the session */
|
||||||
svr_ses.childpipe = childpipe;
|
svr_ses.childpipe = childpipe;
|
||||||
svr_ses.addrstring = addrstring;
|
svr_ses.addrstring = addrstring;
|
||||||
|
#ifdef __uClinux__
|
||||||
|
svr_ses.server_pid = getpid();
|
||||||
|
#endif
|
||||||
|
svr_ses.addrstring = addrstring;
|
||||||
svr_authinitialise();
|
svr_authinitialise();
|
||||||
chaninitialise(svr_chantypes);
|
chaninitialise(svr_chantypes);
|
||||||
svr_chansessinitialise();
|
svr_chansessinitialise();
|
||||||
@ -144,11 +148,20 @@ void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
|
|||||||
|
|
||||||
_dropbear_log(LOG_INFO, fmtbuf, param);
|
_dropbear_log(LOG_INFO, fmtbuf, param);
|
||||||
|
|
||||||
/* free potential public key options */
|
#ifdef __uClinux__
|
||||||
svr_pubkey_options_cleanup();
|
/* only the main server process should cleanup - we don't want
|
||||||
|
* forked children doing that */
|
||||||
|
if (svr_ses.server_pid == getpid())
|
||||||
|
#else
|
||||||
|
if (1)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
/* free potential public key options */
|
||||||
|
svr_pubkey_options_cleanup();
|
||||||
|
|
||||||
/* must be after we've done with username etc */
|
/* must be after we've done with username etc */
|
||||||
common_session_cleanup();
|
common_session_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
exit(exitcode);
|
exit(exitcode);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user