diff -r 7a0f1bf86516 tools/xenstat/libxenstat/src/xenstat_linux.c --- a/tools/xenstat/libxenstat/src/xenstat_linux.c Tue Jun 10 09:27:01 2008 +0100 +++ b/tools/xenstat/libxenstat/src/xenstat_linux.c Tue Jun 10 14:39:20 2008 +0200 @@ -165,7 +165,8 @@ static int read_attributes_vbd(const cha static char file_name[80]; int fd, num_read; - sprintf(file_name, "%s/%s/%s", SYSFS_VBD_PATH, vbd_directory, what); + snprintf(file_name, sizeof(file_name), "%s/%s/%s", + SYSFS_VBD_PATH, vbd_directory, what); fd = open(file_name, O_RDONLY, 0); if (fd==-1) return -1; num_read = read(fd, ret, cap - 1); diff -r 7a0f1bf86516 tools/xenstat/xentop/xentop.c --- a/tools/xenstat/xentop/xentop.c Tue Jun 10 09:27:01 2008 +0100 +++ b/tools/xenstat/xentop/xentop.c Tue Jun 10 14:39:20 2008 +0200 @@ -755,10 +755,11 @@ void do_summary(void) unsigned i, num_domains = 0; unsigned long long used = 0; xenstat_domain *domain; + time_t curt; /* Print program name, current time, and number of domains */ - strftime(time_str, TIME_STR_LEN, TIME_STR_FORMAT, - localtime((const time_t *)&curtime.tv_sec)); + curt = curtime.tv_sec; + strftime(time_str, TIME_STR_LEN, TIME_STR_FORMAT, localtime(&curt)); num_domains = xenstat_node_num_domains(cur_node); ver_str = xenstat_node_xen_version(cur_node); print("xentop - %s Xen %s\n", time_str, ver_str); @@ -978,7 +979,7 @@ static void top(void) /* Count the number of domains for which to report data */ num_domains = xenstat_node_num_domains(cur_node); - domains = malloc(num_domains*sizeof(xenstat_domain *)); + domains = calloc(num_domains, sizeof(xenstat_domain *)); if(domains == NULL) fail("Failed to allocate memory\n");