[OpenSRF-GIT] OpenSRF branch master updated. 42f14c919d82abbf5927775b933ff8c5d4070d2e
Evergreen Git
git at git.evergreen-ils.org
Wed Jun 3 13:21:00 EDT 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "OpenSRF".
The branch, master has been updated
via 42f14c919d82abbf5927775b933ff8c5d4070d2e (commit)
via d9cbdfd1deb13932720ddffc7f01e976e8efaeda (commit)
from 966fb05ed6b47b9a8982cbef2b665f8bab4f75d1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 42f14c919d82abbf5927775b933ff8c5d4070d2e
Author: Galen Charlton <gmc at esilibrary.com>
Date: Tue Mar 24 21:00:57 2015 +0000
LP#1436047: make srfsh --safe act as if "! command" doesn't exist
This patch make srfsh treat attempting to run an external
command via "! command" as a parsing error if --safe is
supplied. It also suppress mention of "! commands" from
the internal help.
Signed-off-by: Galen Charlton <gmc at esilibrary.com>
Signed-off-by: Mike Rylander <mrylander at gmail.com>
diff --git a/src/srfsh/srfsh.c b/src/srfsh/srfsh.c
index aed9536..753180b 100644
--- a/src/srfsh/srfsh.c
+++ b/src/srfsh/srfsh.c
@@ -376,8 +376,10 @@ static int process_request( const char* request ) {
ret_val = handle_close( cmd_array );
else if ( request[0] == '!') {
- if (!no_bang) system( request + 1 );
- ret_val = 1;
+ if (!no_bang) {
+ system( request + 1 );
+ ret_val = 1;
+ }
}
osrfStringArrayFree( cmd_array );
@@ -985,8 +987,12 @@ static int print_help( void ) {
"---------------------------------------------------------------------------------\n"
"General commands:\n"
"---------------------------------------------------------------------------------\n"
- "help - Display this message\n"
- "!<command> [args] - Forks and runs the given command in the shell\n"
+ "help - Display this message\n",
+ stdout );
+ if (!no_bang) fputs(
+ "!<command> [args] - Forks and runs the given command in the shell\n",
+ stdout );
+ fputs(
/*
"time - Prints the current time\n"
"time <timestamp> - Formats seconds since epoch into readable format\n"
commit d9cbdfd1deb13932720ddffc7f01e976e8efaeda
Author: Mike Rylander <mrylander at gmail.com>
Date: Tue Mar 24 16:22:16 2015 -0400
LP#1436047: Allow disabling of "bang commands" in srfsh
srfsh has the ability to execute commands via system() calls using
the common "!command" syntax. This is very useful, but it would
be nice to be able to turn that functionality off in some cases.
This branch adds argument parsing to detect a new '--safe' command
line parameter, which disables the "!command" syntax.
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Galen Charlton <gmc at esilibrary.com>
diff --git a/src/srfsh/srfsh.c b/src/srfsh/srfsh.c
index 956d62a..aed9536 100644
--- a/src/srfsh/srfsh.c
+++ b/src/srfsh/srfsh.c
@@ -95,6 +95,7 @@ static void close_all_sessions( void );
static int recv_timeout = 120;
static int is_from_script = 0;
+static int no_bang = 0;
static osrfHash* server_hash = NULL;
@@ -120,20 +121,31 @@ int main( int argc, char* argv[] ) {
}
if(argc > 1) {
- /* for now.. the first arg is used as a script file for processing */
int f;
- if( (f = open(argv[1], O_RDONLY)) == -1 ) {
- osrfLogError( OSRF_LOG_MARK, "Unable to open file %s for reading, exiting...", argv[1]);
- return -1;
- }
+ int i;
+ for (i = 1; i < argc; i++) {
- if(dup2(f, STDIN_FILENO) == -1) {
- osrfLogError( OSRF_LOG_MARK, "Unable to duplicate STDIN, exiting...");
- return -1;
- }
+ if( !strcmp( argv[i], "--safe" ) ) {
+ no_bang = 1;
+ continue;
+ }
- close(f);
- is_from_script = 1;
+ /* for now.. the first unrecognized arg is used as a script file for processing */
+ if (is_from_script) continue;
+
+ if( (f = open(argv[i], O_RDONLY)) == -1 ) {
+ osrfLogError( OSRF_LOG_MARK, "Unable to open file %s for reading, exiting...", argv[i]);
+ return -1;
+ }
+
+ if(dup2(f, STDIN_FILENO) == -1) {
+ osrfLogError( OSRF_LOG_MARK, "Unable to duplicate STDIN, exiting...");
+ return -1;
+ }
+
+ close(f);
+ is_from_script = 1;
+ }
}
/* --------------------------------------------- */
@@ -364,7 +376,7 @@ static int process_request( const char* request ) {
ret_val = handle_close( cmd_array );
else if ( request[0] == '!') {
- system( request + 1 );
+ if (!no_bang) system( request + 1 );
ret_val = 1;
}
-----------------------------------------------------------------------
Summary of changes:
src/srfsh/srfsh.c | 48 +++++++++++++++++++++++++++++++++---------------
1 files changed, 33 insertions(+), 15 deletions(-)
hooks/post-receive
--
OpenSRF
More information about the opensrf-commits
mailing list