loader: fix loading of kernels with . in path
The loader indended to search the kernel file name (only) for . but instead searched the entire path, so paths like "boot/test.elfv2/kernel" would not work. Submitted by: alfredo.junior_eldorado.org.br Reviewed by: kevans MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19658
This commit is contained in:
parent
45d72c7d7f
commit
fe6ee08134
@ -868,14 +868,16 @@ fake_modname(const char *name)
|
|||||||
sp++;
|
sp++;
|
||||||
else
|
else
|
||||||
sp = name;
|
sp = name;
|
||||||
ep = strrchr(name, '.');
|
|
||||||
if (ep) {
|
ep = strrchr(sp, '.');
|
||||||
if (ep == name) {
|
if (ep == NULL) {
|
||||||
|
ep = sp + strlen(sp);
|
||||||
|
}
|
||||||
|
if (ep == sp) {
|
||||||
sp = invalid_name;
|
sp = invalid_name;
|
||||||
ep = invalid_name + sizeof(invalid_name) - 1;
|
ep = invalid_name + sizeof(invalid_name) - 1;
|
||||||
}
|
}
|
||||||
} else
|
|
||||||
ep = name + strlen(name);
|
|
||||||
len = ep - sp;
|
len = ep - sp;
|
||||||
fp = malloc(len + 1);
|
fp = malloc(len + 1);
|
||||||
if (fp == NULL)
|
if (fp == NULL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user