strncpy warnings fixed: stringop-truncation and stringop-overflow
This commit is contained in:
parent
4eee00101c
commit
a2bef12ce0
4 changed files with 33 additions and 20 deletions
|
|
@ -648,14 +648,14 @@ compare_xmls(cxobj *xc1,
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char filename1[MAXPATHLEN];
|
char filename1[MAXPATHLEN];
|
||||||
char filename2[MAXPATHLEN];
|
char filename2[MAXPATHLEN];
|
||||||
char cmd[MAXPATHLEN];
|
|
||||||
int retval = -1;
|
int retval = -1;
|
||||||
cxobj *xc;
|
cxobj *xc;
|
||||||
|
cbuf *cb = NULL;
|
||||||
|
|
||||||
snprintf(filename1, sizeof(filename1), "/tmp/cliconXXXXXX");
|
snprintf(filename1, sizeof(filename1), "/tmp/cliconXXXXXX");
|
||||||
snprintf(filename2, sizeof(filename2), "/tmp/cliconXXXXXX");
|
snprintf(filename2, sizeof(filename2), "/tmp/cliconXXXXXX");
|
||||||
if ((fd = mkstemp(filename1)) < 0){
|
if ((fd = mkstemp(filename1)) < 0){
|
||||||
clicon_err(OE_UNDEF, errno, "tmpfile: %s", strerror (errno));
|
clicon_err(OE_UNDEF, errno, "tmpfile");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if ((f = fdopen(fd, "w")) == NULL)
|
if ((f = fdopen(fd, "w")) == NULL)
|
||||||
|
|
@ -687,12 +687,19 @@ compare_xmls(cxobj *xc1,
|
||||||
fclose(f);
|
fclose(f);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "/usr/bin/diff -dU 1 %s %s | grep -v @@ | sed 1,2d", filename1, filename2);
|
if ((cb = cbuf_new()) == NULL){
|
||||||
if (system(cmd) < 0)
|
clicon_err(OE_CFG, errno, "cbuf_new");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
cprintf(cb, "/usr/bin/diff -dU 1 %s %s | grep -v @@ | sed 1,2d",
|
||||||
|
filename1, filename2);
|
||||||
|
if (system(cbuf_get(cb)) < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
retval = 0;
|
retval = 0;
|
||||||
done:
|
done:
|
||||||
|
if (cb)
|
||||||
|
cbuf_free(cb);
|
||||||
unlink(filename1);
|
unlink(filename1);
|
||||||
unlink(filename2);
|
unlink(filename2);
|
||||||
return retval;
|
return retval;
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ static inline char * strdup4(char *str)
|
||||||
len = align4(strlen(str)+1);
|
len = align4(strlen(str)+1);
|
||||||
if ((dup = (char*) malloc(len)) == NULL)
|
if ((dup = (char*) malloc(len)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
strncpy(dup, str, len);
|
memcpy(dup, str, strlen(str)+1);
|
||||||
return dup;
|
return dup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ clicon_err_save(void)
|
||||||
return NULL;
|
return NULL;
|
||||||
es->es_errno = clicon_errno;
|
es->es_errno = clicon_errno;
|
||||||
es->es_suberrno = clicon_suberrno;
|
es->es_suberrno = clicon_suberrno;
|
||||||
strncpy(es->es_reason, clicon_err_reason, ERR_STRLEN-1);
|
strncpy(es->es_reason, clicon_err_reason, ERR_STRLEN);
|
||||||
return (void*)es;
|
return (void*)es;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -238,7 +238,7 @@ clicon_err_restore(void* handle)
|
||||||
if ((es = (struct err_state *)handle) != NULL){
|
if ((es = (struct err_state *)handle) != NULL){
|
||||||
clicon_errno = es->es_errno;
|
clicon_errno = es->es_errno;
|
||||||
clicon_suberrno = es->es_suberrno;
|
clicon_suberrno = es->es_suberrno;
|
||||||
strncpy(clicon_err_reason, es->es_reason, ERR_STRLEN-1);
|
strncpy(clicon_err_reason, es->es_reason, ERR_STRLEN);
|
||||||
free(es);
|
free(es);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -292,26 +292,32 @@ atomicio(ssize_t (*fn) (int, void *, size_t),
|
||||||
static int
|
static int
|
||||||
msg_dump(struct clicon_msg *msg)
|
msg_dump(struct clicon_msg *msg)
|
||||||
{
|
{
|
||||||
int i;
|
int retval = -1;
|
||||||
char buf[9*8+1];
|
cbuf *cb = NULL;
|
||||||
char buf2[9*8+1];
|
int i;
|
||||||
|
|
||||||
memset(buf2, 0, sizeof(buf2));
|
if ((cb = cbuf_new()) == NULL){
|
||||||
snprintf(buf2, sizeof(buf2), "%s:", __FUNCTION__);
|
clicon_err(OE_CFG, errno, "cbuf_new");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
cprintf(cb, "%s:", __FUNCTION__);
|
||||||
for (i=0; i<ntohl(msg->op_len); i++){
|
for (i=0; i<ntohl(msg->op_len); i++){
|
||||||
snprintf(buf, sizeof(buf), "%s%02x", buf2, ((char*)msg)[i]&0xff);
|
cprintf(cb, "%02x", ((char*)msg)[i]&0xff);
|
||||||
if ((i+1)%32==0){
|
if ((i+1)%32==0){
|
||||||
clicon_debug(2, "%s", buf);
|
clicon_debug(2, "%s", cbuf_get(cb));
|
||||||
snprintf(buf, sizeof(buf), "%s:", __FUNCTION__);
|
cbuf_reset(cb);
|
||||||
|
cprintf(cb, "%s:", __FUNCTION__);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((i+1)%4==0)
|
if ((i+1)%4==0)
|
||||||
snprintf(buf, sizeof(buf), "%s ", buf2);
|
cprintf(cb, " ");
|
||||||
strncpy(buf2, buf, sizeof(buf2));
|
|
||||||
}
|
}
|
||||||
if (i%32)
|
clicon_debug(2, "%s", cbuf_get(cb));
|
||||||
clicon_debug(2, "%s", buf);
|
retval = 0;
|
||||||
return 0;
|
done:
|
||||||
|
if (cb)
|
||||||
|
cbuf_free(cb);
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Send a CLICON netconf message
|
/*! Send a CLICON netconf message
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue