util/path.c/follow_path() does not handle "/" well
This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1813307
Reported by 'Christophe Lyon' on 2019-01-25 :
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