_cleanup_fclose_ FILE *fp = NULL;
unsigned int swap = 0, rss = 0;
- sprintf(filename, "/proc/%d/status", pid);
+ snprintf(filename, PROC_BUF_MAX, "/proc/%d/status", pid);
fp = fopen(filename, "r");
if (!fp)
return RESOURCED_ERROR_FAIL;
char fpath[BUF_MAX];
char *fname;
char *dir = (char*)data;
+ char len = strlen(dir);
n = scandir(dir, &namelist, memps_file_select, alphasort);
_D("num of log files %d", n);
}
strncpy(fpath, dir, BUF_MAX);
- fname = fpath + strlen(dir);
+ fname = fpath + len;
*fname++ = '/';
+ len = BUF_MAX - len - 2;
for (i = 0; i < n; i++) {
if (i < NUM_RM_LOGS) {
- strcpy(fname, namelist[i]->d_name);
+ strncpy(fname, namelist[i]->d_name, len);
+ fpath[BUF_MAX - 1] = '\0';
_D("remove log file %s", fpath);
ret = remove(fpath);
if (ret < 0)