mirror of
https://github.com/clearml/dropbear
synced 2025-01-31 02:46:58 +00:00
Fix plugin argument
This broke in the re-exec changes, it was altering the argv argument in-place, but argv was re-used later. Fixes #194 github issue
This commit is contained in:
parent
9d320a73be
commit
ab6ea4d697
@ -128,7 +128,9 @@ typedef struct svr_runopts {
|
||||
char * forced_command;
|
||||
|
||||
#if DROPBEAR_PLUGIN
|
||||
/* malloced */
|
||||
char *pubkey_plugin;
|
||||
/* points into pubkey_plugin */
|
||||
char *pubkey_plugin_options;
|
||||
#endif
|
||||
|
||||
|
@ -449,12 +449,12 @@ void svr_getopts(int argc, char ** argv) {
|
||||
|
||||
#if DROPBEAR_PLUGIN
|
||||
if (pubkey_plugin) {
|
||||
char *args = strchr(pubkey_plugin, ',');
|
||||
svr_opts.pubkey_plugin = m_strdup(pubkey_plugin);
|
||||
char *args = strchr(svr_opts.pubkey_plugin, ',');
|
||||
if (args) {
|
||||
*args='\0';
|
||||
++args;
|
||||
}
|
||||
svr_opts.pubkey_plugin = pubkey_plugin;
|
||||
svr_opts.pubkey_plugin_options = args;
|
||||
}
|
||||
#endif
|
||||
|
@ -208,7 +208,7 @@ void svr_session(int sock, int childpipe) {
|
||||
|
||||
}
|
||||
|
||||
/* failure exit - format must be <= 100 chars */
|
||||
/* cleanup and exit - format must be <= 100 chars */
|
||||
void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
|
||||
char exitmsg[150];
|
||||
char fullmsg[300];
|
||||
@ -221,6 +221,8 @@ void svr_dropbear_exit(int exitcode, const char* format, va_list param) {
|
||||
svr_ses.plugin_instance->delete_session(ses.plugin_session);
|
||||
}
|
||||
ses.plugin_session = NULL;
|
||||
svr_opts.pubkey_plugin_options = NULL;
|
||||
m_free(svr_opts.pubkey_plugin);
|
||||
#endif
|
||||
|
||||
/* Render the formatted exit message */
|
||||
|
Loading…
Reference in New Issue
Block a user