mirror of https://github.com/xemu-project/xemu.git
util/getauxval: Ensure setting errno if not found
Sometimes zero is a valid value for getauxval (e.g. AT_EXECFD). Make sure that we can distinguish between a valid zero value and a not found entry by setting errno. Assumes that getauxval from sys/auxv.h sets errno correctly. Signed-off-by: Vivian Wang <uwu@dram.page> Message-ID: <20240723100545.405476-2-uwu@dram.page> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
83340193b9
commit
22531d8cc5
|
@ -95,6 +95,7 @@ unsigned long qemu_getauxval(unsigned long type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
errno = ENOENT;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +105,10 @@ unsigned long qemu_getauxval(unsigned long type)
|
||||||
unsigned long qemu_getauxval(unsigned long type)
|
unsigned long qemu_getauxval(unsigned long type)
|
||||||
{
|
{
|
||||||
unsigned long aux = 0;
|
unsigned long aux = 0;
|
||||||
elf_aux_info(type, &aux, sizeof(aux));
|
int ret = elf_aux_info(type, &aux, sizeof(aux));
|
||||||
|
if (ret != 0) {
|
||||||
|
errno = ret;
|
||||||
|
}
|
||||||
return aux;
|
return aux;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,6 +116,7 @@ unsigned long qemu_getauxval(unsigned long type)
|
||||||
|
|
||||||
unsigned long qemu_getauxval(unsigned long type)
|
unsigned long qemu_getauxval(unsigned long type)
|
||||||
{
|
{
|
||||||
|
errno = ENOSYS;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue