Mercurial > illumos > illumos-gate
changeset 3404:a0ad82bad007
6497726 logadm -z doesn't work correctly with -A
6497739 logadm is free'ing invalid buffer
author | nakanon |
---|---|
date | Wed, 10 Jan 2007 17:28:38 -0800 |
parents | e52013d23622 |
children | 3fb8d8f7ae30 |
files | usr/src/cmd/logadm/fn.c usr/src/cmd/logadm/main.c |
diffstat | 2 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/logadm/fn.c Wed Jan 10 17:08:29 2007 -0800 +++ b/usr/src/cmd/logadm/fn.c Wed Jan 10 17:28:38 2007 -0800 @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * logadm/fn.c -- "filename" string module @@ -538,15 +538,18 @@ return (NULL); /* oldest file is ret, remove it from list */ - if (fnlp->fnl_first == ret) + if (fnlp->fnl_first == ret) { fnlp->fnl_first = ret->fn_next; - else { + } else { fn_list_rewind(fnlp); - while ((fnp = fn_list_next(fnlp)) != NULL) + while ((fnp = fn_list_next(fnlp)) != NULL) { if (fnp->fn_next == ret) { fnp->fn_next = ret->fn_next; + if (fnlp->fnl_last == ret) + fnlp->fnl_last = fnp; break; } + } } ret->fn_next = NULL;
--- a/usr/src/cmd/logadm/main.c Wed Jan 10 17:08:29 2007 -0800 +++ b/usr/src/cmd/logadm/main.c Wed Jan 10 17:28:38 2007 -0800 @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * logadm/main.c -- main routines for logadm @@ -391,8 +391,6 @@ /* execute any gzip commands */ lut_walk(Gzipnames, do_delayed_gzip, clopts); - lut_free(Gzipnames, free); - Gzipnames = NULL; /* write out any conffile changes */ conf_close(clopts); @@ -964,7 +962,7 @@ dorm(opts, "expire by age rule", nextfnp); fn_free(nextfnp); } else { - fn_free(nextfnp); + fn_list_addfn(files, nextfnp); break; } }