[Glibc-bsd-commits] r2696 - trunk/glibc-ports/kfreebsd

Petr Salinger ps-guest at alioth.debian.org
Thu Aug 6 10:53:51 UTC 2009


Author: ps-guest
Date: 2009-08-06 10:53:50 +0000 (Thu, 06 Aug 2009)
New Revision: 2696

Modified:
   trunk/glibc-ports/kfreebsd/devname.c
   trunk/glibc-ports/kfreebsd/sysctlbyname.c
   trunk/glibc-ports/kfreebsd/sysctlnametomib.c
Log:
fix sysctlnametomib()



Modified: trunk/glibc-ports/kfreebsd/devname.c
===================================================================
--- trunk/glibc-ports/kfreebsd/devname.c	2009-08-06 09:33:43 UTC (rev 2695)
+++ trunk/glibc-ports/kfreebsd/devname.c	2009-08-06 10:53:50 UTC (rev 2696)
@@ -38,7 +38,7 @@
 {
 	int i;
 	size_t j;
-	char *r;
+	const char *r;
 
 	if ((type & S_IFMT) == S_IFCHR) {
 		j = len;

Modified: trunk/glibc-ports/kfreebsd/sysctlbyname.c
===================================================================
--- trunk/glibc-ports/kfreebsd/sysctlbyname.c	2009-08-06 09:33:43 UTC (rev 2695)
+++ trunk/glibc-ports/kfreebsd/sysctlbyname.c	2009-08-06 10:53:50 UTC (rev 2696)
@@ -24,14 +24,14 @@
 int
 __sysctlbyname (const char *name, void *oldval, size_t *oldlenp, void *newval, size_t newlen)
 {
-  int request[CTL_MAXNAME];
-  size_t requestlen = sizeof (request);
+  int request[CTL_MAXNAME+2];
+  size_t requestlen = CTL_MAXNAME+2;
 
   if (__sysctlnametomib(name, request, &requestlen) < 0)
     return -1;
 
   /* Now call sysctl using the binary encoded request.  */
-  return __sysctl (request, requestlen / sizeof (int),
+  return __sysctl (request, requestlen,
 		   oldval, oldlenp, newval, newlen);
 }
 

Modified: trunk/glibc-ports/kfreebsd/sysctlnametomib.c
===================================================================
--- trunk/glibc-ports/kfreebsd/sysctlnametomib.c	2009-08-06 09:33:43 UTC (rev 2695)
+++ trunk/glibc-ports/kfreebsd/sysctlnametomib.c	2009-08-06 10:53:50 UTC (rev 2696)
@@ -23,15 +23,16 @@
 int
 __sysctlnametomib (const char *name, int *mibp, size_t *sizep)
 {
-  int request[CTL_MAXNAME];
-  size_t requestlen = sizeof (request);
-
   /* Convert the string NAME to a binary encoded request.  The kernel
      contains a routine for doing this, called "name2oid".  But the way
      to call it is a little bit strange.  */
   int name2oid_request[2] = { 0, 3 };
-  return __sysctl (name2oid_request, 2, mibp, sizep, (void *) name, 
-		   strlen (name));
+  int retval;
+  
+  *sizep *= sizeof (int);
+  retval = __sysctl (name2oid_request, 2, mibp, sizep, (void *) name, strlen (name));
+  *sizep /= sizeof (int);
+  return retval;
 }
 
 weak_alias (__sysctlnametomib, sysctlnametomib)




More information about the Glibc-bsd-commits mailing list