blob: 061504416e74fdc465b7a3716059fe882452f6ec (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
util/path.c/follow_path() does not handle "/" well
Hello,
I noticed that qemu does not handle "/" very well in follow_path().
Specifically, I was trying to run gdbserver under qemu, and it failed inside its implementation of __getcwd.
Indeed it does something like
if (__lstat ("/", &st) < 0)
.....
and then loops from current dir toward the top using lstat("..")
On qemu side, lstat forwards the request to follow_path() in util/path.c, and when passed "/", it returns the path in QEMU_LD_PREFIX (which was the top of my sysroot).
OTHT, the series of lstat("..") finally reaches the real device root because it's not recognized as "/" in follow_path(), so this is inconsistent and __getcwd fails.
I suppose there's a good reason for returning QEMU_LD_PREFIX when asking for "/", but why is it so?
If there's no good reason, maybe the behaviour could be changed to map "/" to "/" ?
Thanks
|