Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Commit e4bbebd

Browse files
committed
fix buffer string bounds issues reported by coverity
Signed-off-by: Peng Tao <[email protected]>
1 parent cf829f1 commit e4bbebd

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

src/exec.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ static int hyper_setup_exec_user(struct hyper_exec *exec)
197197

198198
uid_t uid = 0;
199199
gid_t gid = 0;
200-
int ngroups;
200+
int ngroups = 0;
201201
gid_t *reallocgroups, *groups = NULL;
202202

203203
// check the config

src/init.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,12 +550,15 @@ static void hyper_print_uptime(void)
550550
{
551551
char buf[128];
552552
int fd = open("/proc/uptime", O_RDONLY);
553+
int n;
553554

554555
if (fd < 0)
555556
return;
556-
memset(buf, 0, sizeof(buf));
557-
if (read(fd, buf, sizeof(buf)))
557+
n = read(fd, buf, sizeof(buf)-1);
558+
if (n > 0) {
559+
buf[n] = 0;
558560
fprintf(stdout, "uptime %s\n", buf);
561+
}
559562

560563
close(fd);
561564
}

src/net.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ int hyper_setup_hostname(struct hyper_pod *pod)
683683
int hyper_write_dns_file(int fd, char *field, char **data, int num)
684684
{
685685
int i = 0, len = 0, ret = -1, size;
686-
char *buf = NULL;
686+
char *newbuf, *buf = NULL;
687687

688688
if (num == 0)
689689
return 0;
@@ -699,11 +699,12 @@ int hyper_write_dns_file(int fd, char *field, char **data, int num)
699699
for (i = 0; i < num; i++) {
700700
// 1 for space
701701
int new_size = size + strlen(data[i]) + 1;
702-
buf = realloc(buf, new_size);
703-
if (buf == NULL) {
702+
newbuf = realloc(buf, new_size + 1);
703+
if (newbuf == NULL) {
704704
fprintf(stderr, "fail to realloc buff for %s\n", field);
705705
goto out;
706706
}
707+
buf = newbuf;
707708
buf[size]= ' ';
708709
memcpy(buf + size + 1, data[i], strlen(data[i]));
709710
fprintf(stdout, "%s: data: %s\n", field, buf);

0 commit comments

Comments
 (0)