36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
$OpenBSD: patch-Source_kwsys_CommandLineArguments_cxx,v 1.2 2006/07/31 23:55:52 espie Exp $
|
|
--- Source/kwsys/CommandLineArguments.cxx.orig Mon Jul 31 16:49:59 2006
|
|
+++ Source/kwsys/CommandLineArguments.cxx Tue Aug 1 00:32:19 2006
|
|
@@ -333,16 +333,18 @@ void CommandLineArguments::GetRemainingA
|
|
|
|
// Copy Argv0 as the first argument
|
|
char** args = new char*[ size ];
|
|
- args[0] = new char[ this->Internals->Argv0.size() + 1 ];
|
|
- strcpy(args[0], this->Internals->Argv0.c_str());
|
|
+ size_t sz = this->Internals->Argv0.size() + 1;
|
|
+ args[0] = new char[ sz ];
|
|
+ strlcpy(args[0], this->Internals->Argv0.c_str(), sz);
|
|
int cnt = 1;
|
|
|
|
// Copy everything after the LastArgument, since that was not parsed.
|
|
for ( cc = this->Internals->LastArgument+1;
|
|
cc < this->Internals->Argv.size(); cc ++ )
|
|
{
|
|
- args[cnt] = new char[ this->Internals->Argv[cc].size() + 1];
|
|
- strcpy(args[cnt], this->Internals->Argv[cc].c_str());
|
|
+ size_t sz2 = this->Internals->Argv[cc].size() + 1;
|
|
+ args[cnt] = new char[ sz2 ];
|
|
+ strlcpy(args[cnt], this->Internals->Argv[cc].c_str(), sz2);
|
|
cnt ++;
|
|
}
|
|
*argc = cnt;
|
|
@@ -594,7 +596,7 @@ void CommandLineArguments::GenerateHelp(
|
|
|
|
// Create format for that string
|
|
char format[80];
|
|
- sprintf(format, " %%-%ds ", static_cast<unsigned int>(maxlen));
|
|
+ snprintf(format, sizeof format, " %%-%ds ", static_cast<unsigned int>(maxlen));
|
|
|
|
maxlen += 4; // For the space before and after the option
|
|
|