1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-15 04:32:24 +00:00

dtprintinfo: Coverity (memory corruption, moderate)

This commit is contained in:
Jon Trulson 2014-12-26 17:17:06 -07:00
parent b881408be0
commit a5c7512782
2 changed files with 11 additions and 10 deletions

View file

@ -36,6 +36,7 @@
#include <fcntl.h>
#include <unistd.h> // This is for the getuid function
#include <stdlib.h> // This is for the getenv function
#include <sys/param.h>
#include <pwd.h>
#include "dtprintinfomsg.h"
@ -257,25 +258,25 @@ DtPrinterContainer *DtPrinterIcon::CreateContainer()
char *DtPrinterIcon::CreateActionFile()
{
static char filename[300];
static char filename[MAXPATHLEN + 1];
FILE *fp;
struct stat statbuff;
boolean create_file;
char *buf = new char[300];
char *buf = new char[MAXPATHLEN + 1];
char *lang = getenv("LANG");
if (!(lang && *lang))
lang = "C";
if (app_mode == INITIALIZE_PRINTERS || app_mode == CONFIG_PRINTERS)
{
sprintf(filename, "/etc/dt/appconfig/types/%s", lang);
snprintf(filename, MAXPATHLEN, "/etc/dt/appconfig/types/%s", lang);
if (stat(filename, &statbuff) < 0)
{
sprintf(buf, "mkdir -p %s", filename);
snprintf(buf, MAXPATHLEN, "/bin/mkdir -p %s", filename);
system(buf);
}
sprintf(filename, "/etc/dt/appconfig/types/%s/%s.dt", lang,
snprintf(filename, MAXPATHLEN, "/etc/dt/appconfig/types/%s/%s.dt", lang,
queue->Name());
if (stat(filename, &statbuff) < 0 || statbuff.st_size == 0)
create_file = true;
@ -284,13 +285,13 @@ char *DtPrinterIcon::CreateActionFile()
}
else
{
sprintf(buf, "%s/.dt/types/%s.dt", homeDir, queue->Name());
snprintf(buf, MAXPATHLEN, "%s/.dt/types/%s.dt", homeDir, queue->Name());
if (stat(buf, &statbuff) < 0 || statbuff.st_size == 0)
{
sprintf(buf, "/etc/dt/appconfig/types/%s/%s.dt", lang, queue->Name());
snprintf(buf, MAXPATHLEN, "/etc/dt/appconfig/types/%s/%s.dt", lang, queue->Name());
if (stat(buf, &statbuff) >= 0 && statbuff.st_size > 0)
{
sprintf(buf, "cp /etc/dt/appconfig/types/%s/%s.dt %s/.dt/types",
snprintf(buf, MAXPATHLEN, "/bin/cp /etc/dt/appconfig/types/%s/%s.dt %s/.dt/types",
lang, queue->Name(), homeDir);
system(buf);
create_file = false;
@ -300,7 +301,7 @@ char *DtPrinterIcon::CreateActionFile()
}
else
create_file = false;
sprintf(filename, "%s/.dt/types/%s.dt", homeDir, queue->Name());
snprintf(filename, MAXPATHLEN, "%s/.dt/types/%s.dt", homeDir, queue->Name());
}
if (create_file)
{

View file

@ -417,7 +417,7 @@ boolean BaseObj::SendAction(Action *action,
{
_lastActionStatus = -1;
int len = strlen("'%s' is not an action of %s") +
strlen(ObjectClassName()) + strlen(action->ReferenceName);
strlen(ObjectClassName()) + strlen(action->ReferenceName) + 1;
_lastActionOutput = new char [len];
sprintf(_lastActionOutput, "'%s' is not an action of %s",
ObjectClassName(), action->ReferenceName);