propagate from branch 'au.asn.ucc.matt.dropbear' (head 6cb7793493d92968e09b5dea21d71ded5811d21f)

to branch 'au.asn.ucc.matt.dropbear.channel-fix' (head 275bf5c6b71ca286c29733b9e38bac40eeb06a40)

--HG--
branch : channel-fix
extra : convert_revision : fc57c8943826cc2c844cc3c452f477c85ded72f2
This commit is contained in:
Matt Johnston 2007-02-12 13:38:18 +00:00
commit 6c081b4e7c
7 changed files with 12 additions and 5 deletions

View File

@ -47,6 +47,8 @@ int main(int argc, char ** argv) {
_dropbear_exit = cli_dropbear_exit; _dropbear_exit = cli_dropbear_exit;
_dropbear_log = cli_dropbear_log; _dropbear_log = cli_dropbear_log;
disallow_core();
cli_getopts(argc, argv); cli_getopts(argc, argv);
TRACE(("user='%s' host='%s' port='%s'", cli_opts.username, TRACE(("user='%s' host='%s' port='%s'", cli_opts.username,

View File

@ -693,3 +693,9 @@ void setnonblocking(int fd) {
} }
TRACE(("leave setnonblocking")) TRACE(("leave setnonblocking"))
} }
void disallow_core() {
struct rlimit lim;
lim.rlim_cur = lim.rlim_max = 0;
setrlimit(RLIMIT_CORE, &lim);
}

View File

@ -63,6 +63,7 @@ void * m_realloc(void* ptr, size_t size);
void __m_free(void* ptr); void __m_free(void* ptr);
void m_burn(void* data, unsigned int len); void m_burn(void* data, unsigned int len);
void setnonblocking(int fd); void setnonblocking(int fd);
void disallow_core();
/* Used to force mp_ints to be initialised */ /* Used to force mp_ints to be initialised */
#define DEF_MP_INT(X) mp_int X = {0, 0, 0, NULL} #define DEF_MP_INT(X) mp_int X = {0, 0, 0, NULL}

View File

@ -38,6 +38,7 @@
#include <sys/time.h> #include <sys/time.h>
#include <sys/un.h> #include <sys/un.h>
#include <sys/wait.h> #include <sys/wait.h>
#include <sys/resource.h>
#include <stdio.h> #include <stdio.h>
#include <errno.h> #include <errno.h>

View File

@ -446,10 +446,6 @@ void encrypt_packet() {
} }
/* finished with payload */ /* finished with payload */
buf_burn(ses.writepayload); /* XXX This is probably a good idea, and isn't
_that_ likely to hurt performance too badly.
Buffers can have cleartext passwords etc, or
other sensitive data */
buf_setpos(ses.writepayload, 0); buf_setpos(ses.writepayload, 0);
buf_setlen(ses.writepayload, 0); buf_setlen(ses.writepayload, 0);

View File

@ -119,7 +119,6 @@ void process_packet() {
recv_unimplemented(); recv_unimplemented();
out: out:
buf_burn(ses.payload); /* Clear the memory to avoid swapping it out */
buf_free(ses.payload); buf_free(ses.payload);
ses.payload = NULL; ses.payload = NULL;

View File

@ -52,6 +52,8 @@ int main(int argc, char ** argv)
_dropbear_exit = svr_dropbear_exit; _dropbear_exit = svr_dropbear_exit;
_dropbear_log = svr_dropbear_log; _dropbear_log = svr_dropbear_log;
disallow_core();
/* get commandline options */ /* get commandline options */
svr_getopts(argc, argv); svr_getopts(argc, argv);