Browse Source

NSM: Disallow adding clients by path name.

tags/non-daw-v1.2.0
Jonathan Moore Liles 12 years ago
parent
commit
a3c1e806a9
1 changed files with 12 additions and 4 deletions
  1. +12
    -4
      session-manager/src/nsmd.C

+ 12
- 4
session-manager/src/nsmd.C View File

@@ -755,7 +755,7 @@ OSC_HANDLER( add )
{
if ( ! session_path )
{
osc_server->send( lo_message_get_source( msg ), path,
osc_server->send( lo_message_get_source( msg ), "/error", path,
ERR_NO_SESSION_OPEN,
"Cannot add to session because no session is loaded." );
@@ -763,15 +763,23 @@ OSC_HANDLER( add )
return 0;
}

if ( strchr( &argv[0]->s, '/' ) )
{
osc_server->send( lo_message_get_source( msg ), "/error", path,
ERR_LAUNCH_FAILED,
"Absolute paths are not permitted. Clients must be in $PATH" );
return 0;
}

if ( ! launch( &argv[0]->s, NULL ) )
{
osc_server->send( lo_message_get_source( msg ), path,
osc_server->send( lo_message_get_source( msg ), "/error", path,
ERR_LAUNCH_FAILED,
"Failed to launch process!" );
}
else
{
osc_server->send( lo_message_get_source( msg ), path,
osc_server->send( lo_message_get_source( msg ), "/reply", path,
ERR_OK,
"Launched." );
}
@@ -2263,7 +2271,7 @@ int main(int argc, char *argv[])
osc_server->add_method( "/nsm/server/duplicate", "s", OSC_NAME( duplicate ), NULL, "" );
osc_server->add_method( "/nsm/server/abort", "", OSC_NAME( abort ), NULL, "" );
osc_server->add_method( "/nsm/server/list", "", OSC_NAME( list ), NULL, "" );
osc_server->add_method( "/nsm/server/add", "s", OSC_NAME( add ), NULL, "commandline" );
osc_server->add_method( "/nsm/server/add", "s", OSC_NAME( add ), NULL, "executable_name" );
osc_server->add_method( "/nsm/server/new", "s", OSC_NAME( new ), NULL, "name" );
osc_server->add_method( "/nsm/server/save", "", OSC_NAME( save ), NULL, "" );
osc_server->add_method( "/nsm/server/open", "s", OSC_NAME( open ), NULL, "name" );


Loading…
Cancel
Save