> -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Rob Landley > Sent: Wednesday, July 14, 2010 1:58 AM > To: uClibc > Subject: _dl_pagesize and _dl_dprintf(); > > The _dl_dprintf() code in ldso/ldso/dl-elf.c is checking the > fmt argument against _dl_pagesize, but _dl_pagesize is initialized in > _dl_get_ready_to_run() and that's called from the _end_ of > DL_START(), which I think means most of the DL_DEBUG calls > are bounds checking using random garbage out of an > uninitialized variable. > > Can anybody confirm this? No. I cannot. After initializing the _dl_pagesize the _dl_debug_early is called. It uses the _dl_dprintf.
Note that in DL_START func all macros (SEND_EARLY_STDERR_DEBUG, SEND_STDERR_DEBUG ...) Used for printing messages are done by means of _dl_write syscall. No _dl_dprintf is called! > > (I hit this because when I switched on DL_DEBUG I got > "overflow" for no obvious > reason.) IMO you should check if the _dl_pagesize is correctly set by "_dl_pagesize = (auxvt[AT_PAGESZ].a_un.a_val) ? (size_t) auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;" In _dl_get_ready_to_run() func. > > Rob Regards, Filippo. > -- > GPLv3: as worthy a successor as The Phantom Meanace, as > timely as Duke Nukem Forever, and as welcome as New Coke. > _______________________________________________ > uClibc mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/uclibc > _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
