Merge remote-tracking branch 'konrad/fix-compiler-warnings' into 3.15
* konrad/fix-compiler-warnings: epicsTime: rely on implicit copy constructor iocLogServer: check return values Fix potential buffer overflow in iocLogServer Fix weird use of strncpy
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
|
||||
static unsigned short ioc_log_port;
|
||||
static long ioc_log_file_limit;
|
||||
static char ioc_log_file_name[256];
|
||||
static char ioc_log_file_name[512];
|
||||
static char ioc_log_file_command[256];
|
||||
|
||||
|
||||
@@ -866,7 +866,12 @@ static int setupSIGHUP(struct ioc_log_server *pserver)
|
||||
*/
|
||||
static void sighupHandler(int signo)
|
||||
{
|
||||
(void) write(sighupPipe[1], "SIGHUP\n", 7);
|
||||
const char msg[] = "SIGHUP\n";
|
||||
const ssize_t bytesWritten = write(sighupPipe[1], msg, sizeof(msg));
|
||||
if (bytesWritten != sizeof(msg)) {
|
||||
fprintf(stderr, "iocLogServer: failed to write to SIGHUP pipe because "
|
||||
"`%s'\n", strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -884,7 +889,10 @@ static void serviceSighupRequest(void *pParam)
|
||||
/*
|
||||
* Read and discard message from pipe.
|
||||
*/
|
||||
(void) read(sighupPipe[0], buff, sizeof buff);
|
||||
if (read(sighupPipe[0], buff, sizeof buff) <= 0) {
|
||||
fprintf(stderr, "iocLogServer: failed to read from SIGHUP pipe because "
|
||||
"`%s'\n", strerror(errno));
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine new log file name.
|
||||
|
||||
@@ -205,9 +205,6 @@ epicsTime::epicsTime (const epicsTimeStamp &ts)
|
||||
epicsTime::epicsTime () :
|
||||
secPastEpoch(0u), nSec(0u) {}
|
||||
|
||||
epicsTime::epicsTime (const epicsTime &t) :
|
||||
secPastEpoch (t.secPastEpoch), nSec (t.nSec) {}
|
||||
|
||||
epicsTime epicsTime::getCurrent ()
|
||||
{
|
||||
epicsTimeStamp current;
|
||||
|
||||
@@ -81,7 +81,6 @@ public:
|
||||
class formatProblemWithStructTM {};
|
||||
|
||||
epicsTime ();
|
||||
epicsTime ( const epicsTime & t );
|
||||
|
||||
static epicsTime getEvent ( const epicsTimeEvent & );
|
||||
static epicsTime getCurrent ();
|
||||
|
||||
@@ -329,9 +329,9 @@ static long get_enum_strs(DBADDR *paddr,struct dbr_enumStrs *pes)
|
||||
/*SETTING no_str=0 breaks channel access clients*/
|
||||
pes->no_str = 2;
|
||||
memset(pes->strs,'\0',sizeof(pes->strs));
|
||||
strncpy(pes->strs[0],prec->znam,sizeof(prec->znam));
|
||||
strncpy(pes->strs[0],prec->znam,sizeof(pes->strs[0]));
|
||||
if(*prec->znam!=0) pes->no_str=1;
|
||||
strncpy(pes->strs[1],prec->onam,sizeof(prec->onam));
|
||||
strncpy(pes->strs[1],prec->onam,sizeof(pes->strs[1]));
|
||||
if(*prec->onam!=0) pes->no_str=2;
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ static void monitor(stateRecord *prec)
|
||||
monitor_mask = recGblResetAlarms(prec);
|
||||
if(strncmp(prec->oval,prec->val,sizeof(prec->val))) {
|
||||
db_post_events(prec,&(prec->val[0]),monitor_mask|DBE_VALUE|DBE_LOG);
|
||||
strncpy(prec->oval,prec->val,sizeof(prec->val));
|
||||
strncpy(prec->oval,prec->val,sizeof(prec->oval));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@ static long init_record(stringinRecord *prec, int pass)
|
||||
if( pdset->init_record ) {
|
||||
if((status=(*pdset->init_record)(prec))) return(status);
|
||||
}
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->val));
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->oval));
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ static void monitor(stringinRecord *prec)
|
||||
|
||||
if (strncmp(prec->oval, prec->val, sizeof(prec->val))) {
|
||||
monitor_mask |= DBE_VALUE | DBE_LOG;
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->val));
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->oval));
|
||||
}
|
||||
|
||||
if (prec->mpst == stringinPOST_Always)
|
||||
|
||||
@@ -122,7 +122,7 @@ static long init_record(stringoutRecord *prec, int pass)
|
||||
if( pdset->init_record ) {
|
||||
if((status=(*pdset->init_record)(prec))) return(status);
|
||||
}
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->val));
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->oval));
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -188,7 +188,7 @@ static void monitor(stringoutRecord *prec)
|
||||
|
||||
if (strncmp(prec->oval, prec->val, sizeof(prec->val))) {
|
||||
monitor_mask |= DBE_VALUE | DBE_LOG;
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->val));
|
||||
strncpy(prec->oval, prec->val, sizeof(prec->oval));
|
||||
}
|
||||
|
||||
if (prec->mpst == stringoutPOST_Always)
|
||||
|
||||
Reference in New Issue
Block a user