int ret = 0;
int length;
double *array = NULL;
- char buf[BUFF_MAX];
- char temp[10];
+ char buf[BUFF_MAX + 1];
+ char temp[BUFF_MAX];
if (!res)
return -1;
if (ret < 0) break;
- memset(buf, 0, BUFF_MAX);
+ memset(buf, 0, BUFF_MAX + 1);
for (i = 0; i < length; i++) {
- snprintf(temp, 10, "%2.2f ", array[i]);
- strcat(buf, temp);
+ snprintf(temp, BUFF_MAX, "%2.2f ", array[i]);
+ if (strlen(buf) + strlen(temp) >= BUFF_MAX)
+ break;
+
+ strncat(buf, temp, BUFF_MAX);
}
printf("%40s | %-5s | %s", buf, res->attrs[idx].unit, res->attrs[idx].desc);