zx_vmo_replace_as_executable


英文原文快照


名称

vmo_replace_as_executable —— 向vmo添加可执行权限

概要

  1. #include <zircon/syscalls.h>
  2. zx_status_t zx_vmo_replace_as_executable(zx_handle_t vmo, zx_handle_t vmex, zx_handle_t* out);

描述

vmo_replace_as_executable() 的功能是使用新的虚拟内存对象替换vmo,它引用与vmo相同的底层VM对象,并添加ZX_RIGHT_EXECUTE权限。

操作完成后vmo将失效。

权限

vmex必须是有效的ZX_RSRC_KIND_VMEX类型资源句柄,或ZX_HANDLE_INVALID(以便于迁移旧代码)。

TODO(SEC-42):禁止使用ZX_HANDLE_INVALID

返回值

vmo_replace_as_executable() 调用成功则返回ZX_OK,如果发生错误,则返回负的错误码。

错误码

ZX_ERR_BAD_HANDLEvmo不是有效的VM对象句柄,或vmex不是有效的ZX_RSRC_KIND_VMEX资源句柄。

ZX_ERR_NO_MEMORY:由于内存不足导致的失败。 而用户空间无法处理这个(不太可能发生的)错误。 在将来的构建版本中,将不再出现此错误。

另见

resource_create, vmar_map.