pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/37557: Fix invalid casts in sysutil/xosview/bsd/kernel.cc



>Number:         37557
>Category:       pkg
>Synopsis:       Fix invalid casts in sysutil/xosview/bsd/kernel.cc
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Dec 17 19:40:02 +0000 2007
>Originator:     Paul Goyette
>Release:        NetBSD 4.99.41
>Organization:
----------------------------------------------------------------------
|   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:   |
| Customer Service | FA29 0E3B 35AF E8AE 6651 |  paul%whooppee.com@localhost   |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette%juniper.net@localhost |
----------------------------------------------------------------------
>Environment:
        
        
System: NetBSD quicky.whooppee.com 4.99.41 NetBSD 4.99.41 (QUICKY (ASUS M2N32 
WS) 2007-12-09 13:46:07 UTC) #0: Sun Dec 9 06:54:16 PST 2007 
paul%quicky.whooppee.com@localhost:/usr/obj/objdir/amd64/sys/arch/amd64/compile/QUICKY
 amd64
Architecture: x86_64
Machine: amd64
>Description:
routine safE_kvm_read() is defined to take a u_long first argument for the
kernel address to be read.  But at lines 1046 and 1054 an address is cast
to an unsigned int.  This results in compiler errors.
        
>How-To-Repeat:
Try to build sysutils/xosview on x86_64
        
>Fix:
Apply the following diffs to sysutils/xosview/patches/patch-aa


--- patch-aa    2007-12-17 11:32:34.000000000 -0800
+++ kernel.cc.diff      2007-12-17 11:31:15.000000000 -0800
@@ -164,3 +164,21 @@
    }
    *bytesXferred = xferred;
  #else
+@@ -1016,7 +1043,7 @@
+ 
+     while (evptr && i < NUM_INTR) {
+ 
+-      safe_kvm_read((unsigned int)evptr, &evcnt, sizeof(evcnt));
++      safe_kvm_read((u_long)evptr, &evcnt, sizeof(evcnt));
+ 
+       evptr = evcnt.ev_list.tqe_next;
+ 
+@@ -1024,7 +1051,7 @@
+       if (evcnt.ev_type != EVCNT_TYPE_INTR)
+       continue;
+ 
+-      safe_kvm_read((unsigned int)evcnt.ev_name, evname, evcnt.ev_namelen);
++      safe_kvm_read((u_long)evcnt.ev_name, evname, evcnt.ev_namelen);
+       // If it's a soft interrupt (has a name that starts with "soft"), skip 
it.
+       if (!strncmp(evname, "soft", 4))
+       continue;

>Unformatted:
        
        



Home | Main Index | Thread Index | Old Index