found:
if ((endbuf = strchr(p, '\n'))) {
len = endbuf - p;
- ret = silc_calloc(len, sizeof(*ret));
- strncpy(ret, p, len);
- ret[len] = '\0';
- }
- else {
- ret = silc_calloc(strlen(p), sizeof(*ret));
- strcpy(ret, p);
+ ret = silc_memdup(p, len);
+ } else {
+ ret = silc_memdup(p, strlen(p));
}
return ret;
}
log->filename, oldfp));
return;
}
- if (size < log->maxsize) return;
+ if (size < log->maxsize)
+ return;
/* It's too big */
fprintf(log->fp, "[%s] [%s] Cycling log file, over max "
silc_get_time(0), log->typename, log->maxsize / 1024);
fflush(log->fp);
fclose(log->fp);
- snprintf(newname, sizeof(newname), "%s.old", log->filename);
+ memset(newname, 0, sizeof(newname));
+ snprintf(newname, sizeof(newname) - 1, "%s.old", log->filename);
unlink(newname);
/* I heard the following syscall may cause portability issues, but I don't