]> granicus.if.org Git - sysstat/commitdiff
Check calloc() return value in nfsiostat and cifsiostat.
authorSebastien Godard <sysstat@orange.fr>
Sun, 6 Feb 2011 07:27:12 +0000 (08:27 +0100)
committerSebastien Godard <sysstat@orange.fr>
Sun, 6 Feb 2011 07:27:12 +0000 (08:27 +0100)
A call to calloc() function to allocate structures in nfsiostat and
cifsiostat wasn't checked for its return code. This call could possibly
fail without ever being noticed.

Mail from Ivana Varekova (varekova@redhat.com) 02/02/2011
Hello, I'm sending 6 patches - 3 for nfsiostat and 3 for cifsiostat
nfsiostat:
    nfsiostat2.patch - adds the forgotten test to malloc
(...)

cifsiostat:
    cifsiostat2.patch - adds the forgotten test to malloc
(...)

CHANGES
cifsiostat.c
nfsiostat.c

diff --git a/CHANGES b/CHANGES
index 40457990f7750fd97ff66747ab135849cfc4bfda..e5525c3beebeedbb8b718aeaa5e709bd38bde83c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,10 @@
 Changes:
 
 xxxx/xx/xx: Version 10.0.0 - Sebastien Godard (sysstat <at> orange.fr)
-       * [Jan Kaluza]: Added --debuginfo option to cifsiostat.
-       * [Jan Kaluza]: Added --debuginfo option to nfsiostat.
+       * [Ivana Varekova]: Check calloc() return value in cifsiostat
+         and nfsiostat.
+       * [Jan Kaluza]: Added --debuginfo option to cifsiostat and
+         nfsiostat.
        * cifsiostat and nfsiostat manual pages updated.
        * sysstat_panic function is now defined only in DEBUG mode.
        * NLS updated. Ukrainian translation added.
index 8aeddae35505bf9e3135d1161c9015ef8516063b..5d9f127833a101ca1140c79c8df3317f689b2529 100644 (file)
@@ -174,7 +174,10 @@ void io_sys_init(void)
        if ((cifs_nr = get_cifs_nr()) > 0) {
                cifs_nr += NR_CIFS_PREALLOC;
        }
-       st_hdr_cifs = (struct io_hdr_stats *) calloc(cifs_nr, IO_HDR_STATS_SIZE);
+       if ((st_hdr_cifs = (struct io_hdr_stats *) calloc(cifs_nr, IO_HDR_STATS_SIZE)) == NULL) {
+               perror("malloc");
+               exit(4);
+       }
        
        /* Allocate structures for number of CIFS directories found */
        for (i = 0; i < 2; i++) {
index 70cd93117abbefb8d653954a45e6f6d6a3bcec84..4222bd358e4f097e89d0c085d9468628804ca02a 100644 (file)
@@ -198,7 +198,10 @@ void io_sys_init(void)
        if ((ionfs_nr = get_nfs_mount_nr()) > 0) {
                ionfs_nr += NR_NFS_PREALLOC;
        }
-       st_hdr_ionfs = (struct io_hdr_stats *) calloc(ionfs_nr, IO_HDR_STATS_SIZE);
+       if ((st_hdr_ionfs = (struct io_hdr_stats *) calloc(ionfs_nr, IO_HDR_STATS_SIZE)) == NULL) {
+               perror("malloc");
+               exit(4);
+       }
        
        /* Allocate structures for number of NFS directories found */
        for (i = 0; i < 2; i++) {