From dfc7584869a55b0dca46a41a8396f94cd3212612 Mon Sep 17 00:00:00 2001 From: Peter Baumann Date: Wed, 1 Sep 2010 15:44:30 +0200 Subject: avoid buffer oflo in rasserver invocation, use ARG_MAX consistently (also in place of self-defined MAX_CMD_LEN) --- rasmgr/rasmgr_srv.cc | 6 +++--- rasmgr/rasmgr_srv.hh | 9 +++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/rasmgr/rasmgr_srv.cc b/rasmgr/rasmgr_srv.cc index 91c593c..057a39d 100644 --- a/rasmgr/rasmgr_srv.cc +++ b/rasmgr/rasmgr_srv.cc @@ -407,7 +407,7 @@ int RasServer::startServer() sTypeString= serverType==SERVERTYPE_FLAG_RNP ? "--rnp" : sTypeString; const char *rasmgrHost = ptrServerHost->useLocalHost() ? "localhost" : config.getHostName(); - char command[MAX_CMD_LEN+1]; + char command[ARG_MAX+1]; const char *SPRINTF_FORMAT = "%s %s %s --rsn %s %s --lport %ld --mgr %s --mgrport %ld --connect %s %s"; // check for buffer oflo unsigned int commandLen = @@ -418,9 +418,9 @@ int RasServer::startServer() + 4 // aka strlen(config.getListenPort()) + strlen(ptrDatabaseHost->getConnectionString()) + strlen(extraParam); - if (commandLen > MAX_CMD_LEN) + if (commandLen > ARG_MAX) { - TALK( "RasServer::startServer(): fatal error: command line can host " << MAX_CMD_LEN << " bytes, but needs " << commandLen << "." ); + TALK( "RasServer::startServer(): fatal error: command line can host " << ARG_MAX << " bytes, but needs " << commandLen << "." ); std::cout<<"Error: rasserver command line too long, cannot launch. Disappointedly aborting server start." <rpc prognum; 'h' ->TCP/IP port - char extraParam[MAX_CMD_LEN]; + char extraParam[ARG_MAX]; - char executableName[MAX_CMD_LEN]; + char executableName[ARG_MAX]; DatabaseHost *ptrDatabaseHost; //char connStr[100]; -- cgit