Date: Sat, 30 Dec 2006 21:55:37 -0600 From: "Scot Hetzel" <swhetzel@gmail.com> To: "Divacky Roman" <xdivac02@stud.fit.vutbr.cz> Cc: freebsd-emulation@freebsd.org Subject: Re: linuxolator: amd64 Linux Test Project failures Message-ID: <790a9fff0612301955r35b16472r2429fbe3fce78228@mail.gmail.com> In-Reply-To: <790a9fff0612301926n1562d560r1f3fff9af4bdb138@mail.gmail.com> References: <790a9fff0612290911t5ae69715gd2bf0dda0f9228f2@mail.gmail.com> <20061229213509.GA86839@stud.fit.vutbr.cz> <790a9fff0612291424g4ecbd088i7846d248851b3e63@mail.gmail.com> <20061230120722.GA36814@stud.fit.vutbr.cz> <790a9fff0612301926n1562d560r1f3fff9af4bdb138@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I think I found the problem, I had wrongly assumed that the code was
using (char *)-1 as the address to pass to the function. Instead the
code in access03, is using mmap to assign an address to variable
bad_address.
Below is the test program that shows that the problem is in mmap.
Scot
#include <errno.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <sys/mman.h>
int
main()
{
char * bad_addr;
access((char *)-1, 0);
bad_addr = mmap(0, 1, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
printf("bad_addr = %p\n", bad_addr);
access(bad_addr, 0);
return(0);
}
hp010 / # gcc t1.c -o t1
hp010 / # ./t1
bad_addr = 0x2805e000
hp010 / # exit
exit
Dec 30 21:47:11 hp010 kernel: linux(1565): access(Checking if path
[0xffffffffffffffff/0xffffffffa3b5abe0/0xffffffff] exists)
Dec 30 21:47:11 hp010 kernel: kern_alternate_path: error = 14, path =
0xffffffffa3b5a980
Dec 30 21:47:11 hp010 kernel: linux(1565): access(Checking if path
[0xffffffffffffffff/0xffffffffa3b5abe0/0x2805e000] exists)
Dec 30 21:47:11 hp010 kernel: kern_alternate_path: error = 0, path =
0xffffffffa3b5a980
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?790a9fff0612301955r35b16472r2429fbe3fce78228>
