summaryrefslogtreecommitdiffstats
path: root/rasmgr/rasmgr_localsrv.cc
diff options
context:
space:
mode:
Diffstat (limited to 'rasmgr/rasmgr_localsrv.cc')
-rw-r--r--rasmgr/rasmgr_localsrv.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/rasmgr/rasmgr_localsrv.cc b/rasmgr/rasmgr_localsrv.cc
index 0d16318..ede2286 100644
--- a/rasmgr/rasmgr_localsrv.cc
+++ b/rasmgr/rasmgr_localsrv.cc
@@ -41,6 +41,7 @@ using namespace std;
#include "rasmgr_srv.hh"
#include <signal.h>
#include <time.h>
+#include <linux/limits.h> // ARG_MAX
#include "raslib/rminit.hh"
@@ -107,7 +108,15 @@ LocalServerManager::~LocalServerManager()
bool LocalServerManager::startNewServer(const char* commandline)
{
ENTER( "LocalServerManager::startNewServer: enter. cmdLine=" << commandline );
- char localcomm[300];
+ char localcomm[ARG_MAX];
+
+ if (strlen(commandline) >= ARG_MAX)
+ {
+ VLOG <<"Error: rasserver launch command line too long: " << commandline <<std::endl;
+ LEAVE( "LocalServerManager::startNewServer: leave. cmd line too long, result=false." );
+ return false;
+ }
+
strcpy(localcomm,commandline);
int i;