فهرست منبع

const-qualify the address argument to dladdr

this agrees with implementation practice on glibc and BSD systems, and
is the const-correct way to do things; it eliminates warnings from
passing pointers to const. the prototype without const came from
seemingly erroneous man pages.
Rich Felker 11 سال پیش
والد
کامیت
839cc4e6da
3فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 1 1
      include/dlfcn.h
  2. 2 2
      src/ldso/dladdr.c
  3. 2 2
      src/ldso/dynlink.c

+ 1 - 1
include/dlfcn.h

@@ -31,7 +31,7 @@ typedef struct {
 	const char *dli_sname;
 	void *dli_saddr;
 } Dl_info;
-int dladdr(void *, Dl_info *);
+int dladdr(const void *, Dl_info *);
 int dlinfo(void *, int, void *);
 #endif
 

+ 2 - 2
src/ldso/dladdr.c

@@ -1,9 +1,9 @@
 #define _GNU_SOURCE
 #include <dlfcn.h>
 
-int __dladdr(void *, Dl_info *);
+int __dladdr(const void *, Dl_info *);
 
-int dladdr(void *addr, Dl_info *info)
+int dladdr(const void *addr, Dl_info *info)
 {
 	return __dladdr(addr, info);
 }

+ 2 - 2
src/ldso/dynlink.c

@@ -1331,7 +1331,7 @@ failed:
 	return 0;
 }
 
-int __dladdr(void *addr, Dl_info *info)
+int __dladdr(const void *addr, Dl_info *info)
 {
 	struct dso *p;
 	Sym *sym;
@@ -1441,7 +1441,7 @@ void *__dlsym(void *restrict p, const char *restrict s, void *restrict ra)
 {
 	return 0;
 }
-int __dladdr (void *addr, Dl_info *info)
+int __dladdr (const void *addr, Dl_info *info)
 {
 	return 0;
 }