Date: Thu, 14 Aug 2008 15:42:05 GMT From: Stacey Son <sson@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 147395 for review Message-ID: <200808141542.m7EFg5K4098016@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=147395 Change 147395 by sson@sson_amd64 on 2008/08/14 15:42:03 Fixed auditd break. String length clean up. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#36 edit .. //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#11 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#36 (text+ko) ==== @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#35 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#36 $ */ #include <sys/types.h> @@ -72,9 +72,6 @@ #include "audit_triggers_server.h" #endif /* USE_MACH_IPC */ -#ifndef HAVE_STRLCAT -#include <compat/strlcat.h> -#endif #ifndef HAVE_STRLCPY #include <compat/strlcpy.h> #endif @@ -160,11 +157,10 @@ syslog(LOG_DEBUG, "dir = %s", dirent->dirname); /* - * Sanity check on file name. It should be exactly the size - * (2 * POSTFIX_LEN) + 1. + * Sanity check on file name. */ - if (strlen(name) != (2 * POSTFIX_LEN) + 1) { - syslog(LOG_ERR, "invalid filename (%s)", name); + if (strlen(name) != (FILENAME_LEN - 1)) { + syslog(LOG_ERR, "Invalid file name: %s", name); return (NULL); } asprintf(&fn, "%s/%s", dirent->dirname, name); @@ -190,7 +186,7 @@ /* Rename the last file -- append timestamp. */ if ((ptr = strstr(lastfile, NOT_TERMINATED)) != NULL) { - strlcpy(ptr, TS, POSTFIX_LEN); + strlcpy(ptr, TS, TIMESTAMP_LEN); if (rename(oldname, lastfile) != 0) syslog(LOG_ERR, "Could not rename %s to %s: %m", oldname, @@ -244,9 +240,9 @@ static int swap_audit_file(void) { - char timestr[(2 * POSTFIX_LEN) + 1]; + char timestr[FILENAME_LEN]; char *fn; - char TS[POSTFIX_LEN]; + char TS[TIMESTAMP_LEN]; struct dir_ent *dirent; #ifdef AUDIT_REVIEW_GROUP struct group *grp; @@ -255,12 +251,10 @@ #endif int error, fd; - if (getTSstr(TS, POSTFIX_LEN) != 0) + if (getTSstr(TS, TIMESTAMP_LEN) != 0) return (-1); - strlcpy(timestr, TS, POSTFIX_LEN); - strlcat(timestr, ".", 1); - strlcat(timestr, NOT_TERMINATED, POSTFIX_LEN); + snprintf(timestr, FILENAME_LEN, "%s.%s", TS, NOT_TERMINATED); #ifdef AUDIT_REVIEW_GROUP /* @@ -411,7 +405,7 @@ { struct auditinfo ai; int err_ret = 0; - char TS[POSTFIX_LEN]; + char TS[TIMESTAMP_LEN]; int aufd; token_t *tok; long cond; @@ -446,7 +440,7 @@ strerror(errno)); err_ret = 1; } - if (getTSstr(TS, POSTFIX_LEN) == 0) + if (getTSstr(TS, TIMESTAMP_LEN) == 0) close_lastfile(TS); if (lastfile != NULL) free(lastfile); ==== //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#11 (text+ko) ==== @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#10 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#11 $ */ #ifndef _AUDITD_H_ @@ -46,8 +46,10 @@ */ #define AUDIT_REVIEW_GROUP "audit" -#define POSTFIX_LEN (sizeof("YYYYMMDDhhmmss") - 1) #define NOT_TERMINATED "not_terminated" +#define POSTFIX_LEN (sizeof("YYYYMMDDhhmmss") - 1) +#define FILENAME_LEN ((2 * POSTFIX_LEN) + 2) +#define TIMESTAMP_LEN (POSTFIX_LEN + 1) struct dir_ent { char *dirname;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808141542.m7EFg5K4098016>