Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 20db51d70e6b59a061db97ce9b89c771 > files > 13

net-snmp-5.3.2.2-14.el5.src.rpm

348681: snmpwalk of UCD-SNMP-MIB dskEntry causes bad data if "disks" mount point contain spaces

Author: Jan Safranek <jsafrane@redhat.com>
Reviewed-By: Karel Zak <kzak@redhat.com>

Sent upstream as http://sourceforge.net/tracker/index.php?func=detail&aid=1828839&group_id=12694&atid=312694

diff -up net-snmp-5.4.1/agent/mibgroup/ucd-snmp/disk.c.disk-spaces net-snmp-5.4.1/agent/mibgroup/ucd-snmp/disk.c
--- net-snmp-5.4.1/agent/mibgroup/ucd-snmp/disk.c.disk-spaces	2007-04-02 16:55:17.000000000 +0200
+++ net-snmp-5.4.1/agent/mibgroup/ucd-snmp/disk.c	2007-10-22 17:51:03.000000000 +0200
@@ -394,12 +394,12 @@ add_device(char *path, char *device, int
   else if(index == -1){
     /* add if and only if the device was found */
     if(device[0] != 0) {
-      copy_nword(path, disks[numdisks].path, 
-		 sizeof(disks[numdisks].path));
-      copy_nword(device, disks[numdisks].device, 
-		 sizeof(disks[numdisks].device));
-      disks[numdisks].minimumspace = minspace;
-      disks[numdisks].minpercent   = minpercent;
+      struct diskpart *disk = &disks[numdisks];
+      /* Following buffers are cleared above, no need to add '\0' */
+      strncpy(disk->path, path, sizeof(disk->path)-1);
+      strncpy(disk->device, device, sizeof(disk->device)-1);
+      disk->minimumspace = minspace;
+      disk->minpercent   = minpercent;
       numdisks++;  
     }
     else {