Author: mckusick
Date: Tue Feb 25 18:25:27 2014
New Revision: 262488
URL: http://svnweb.freebsd.org/changeset/base/262488

Log:
  Arguments for malloc and calloc should be size_t, not int.
  Use proper bounds check when trying to free cached memory.
  
  Spotted by: Xin Li
  Tested by:  Dmitry Sivachenko
  MFC after:  2 weeks

Modified:
  head/sbin/fsck_ffs/fsck.h
  head/sbin/fsck_ffs/fsutil.c

Modified: head/sbin/fsck_ffs/fsck.h
==============================================================================
--- head/sbin/fsck_ffs/fsck.h   Tue Feb 25 18:00:55 2014        (r262487)
+++ head/sbin/fsck_ffs/fsck.h   Tue Feb 25 18:25:27 2014        (r262488)
@@ -369,7 +369,7 @@ int flushentry(void);
  * to get space.
  */
 static inline void*
-Malloc(int size)
+Malloc(size_t size)
 {
        void *retval;
 
@@ -384,7 +384,7 @@ Malloc(int size)
  * to get space.
  */
 static inline void*
-Calloc(int cnt, int size)
+Calloc(size_t cnt, size_t size)
 {
        void *retval;
 

Modified: head/sbin/fsck_ffs/fsutil.c
==============================================================================
--- head/sbin/fsck_ffs/fsutil.c Tue Feb 25 18:00:55 2014        (r262487)
+++ head/sbin/fsck_ffs/fsutil.c Tue Feb 25 18:25:27 2014        (r262488)
@@ -225,7 +225,7 @@ cgget(int cg)
        struct cg *cgp;
 
        if (cgbufs == NULL) {
-               cgbufs = Calloc(sblock.fs_ncg, sizeof(struct bufarea));
+               cgbufs = calloc(sblock.fs_ncg, sizeof(struct bufarea));
                if (cgbufs == NULL)
                        errx(EEXIT, "cannot allocate cylinder group buffers");
        }
@@ -254,6 +254,8 @@ flushentry(void)
 {
        struct bufarea *cgbp;
 
+       if (flushtries == sblock.fs_ncg || cgbufs == NULL)
+               return (0);
        cgbp = &cgbufs[flushtries++];
        if (cgbp->b_un.b_cg == NULL)
                return (0);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to