mirror of
https://github.com/clearml/dropbear
synced 2025-05-18 10:21:32 +00:00
- For uclinux, only cleanup on exit for the main process. This avoids
trashing the state when a failing child exits. --HG-- extra : convert_revision : 5d029ce4602908c3becf0035cf2b7e62816959bc
This commit is contained in:
parent
cb82c6e3e0
commit
a996e61a2e
@ -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);
|
||||||
|
|
||||||
|
#ifdef __uClinux__
|
||||||
|
/* 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 */
|
/* free potential public key options */
|
||||||
svr_pubkey_options_cleanup();
|
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