diff --git a/bindings/go/unicorn/unicorn_const.go b/bindings/go/unicorn/unicorn_const.go index 5cd094dc..20c42bc9 100644 --- a/bindings/go/unicorn/unicorn_const.go +++ b/bindings/go/unicorn/unicorn_const.go @@ -49,7 +49,7 @@ const ( ERR_WRITE_PROT = 13 ERR_READ_PROT = 14 ERR_EXEC_PROT = 15 - ERR_INVAL = 16 + ERR_ARG = 16 ERR_READ_UNALIGNED = 17 ERR_WRITE_UNALIGNED = 18 ERR_FETCH_UNALIGNED = 19 diff --git a/bindings/java/unicorn/UnicornConst.java b/bindings/java/unicorn/UnicornConst.java index 9b9743ce..ba85074b 100644 --- a/bindings/java/unicorn/UnicornConst.java +++ b/bindings/java/unicorn/UnicornConst.java @@ -51,7 +51,7 @@ public interface UnicornConst { public static final int UC_ERR_WRITE_PROT = 13; public static final int UC_ERR_READ_PROT = 14; public static final int UC_ERR_EXEC_PROT = 15; - public static final int UC_ERR_INVAL = 16; + public static final int UC_ERR_ARG = 16; public static final int UC_MEM_READ = 16; public static final int UC_MEM_WRITE = 17; public static final int UC_MEM_READ_WRITE = 18; diff --git a/bindings/python/unicorn/unicorn_const.py b/bindings/python/unicorn/unicorn_const.py index d87eb1b7..7999afc1 100644 --- a/bindings/python/unicorn/unicorn_const.py +++ b/bindings/python/unicorn/unicorn_const.py @@ -47,7 +47,7 @@ UC_ERR_MAP = 12 UC_ERR_WRITE_PROT = 13 UC_ERR_READ_PROT = 14 UC_ERR_EXEC_PROT = 15 -UC_ERR_INVAL = 16 +UC_ERR_ARG = 16 UC_ERR_READ_UNALIGNED = 17 UC_ERR_WRITE_UNALIGNED = 18 UC_ERR_FETCH_UNALIGNED = 19 diff --git a/include/unicorn/unicorn.h b/include/unicorn/unicorn.h index 7ca0d0dd..303921ef 100644 --- a/include/unicorn/unicorn.h +++ b/include/unicorn/unicorn.h @@ -121,7 +121,7 @@ typedef enum uc_err { UC_ERR_WRITE_PROT, // Quit emulation due to UC_PROT_WRITE violation: uc_emu_start() UC_ERR_READ_PROT, // Quit emulation due to UC_PROT_READ violation: uc_emu_start() UC_ERR_EXEC_PROT, // Quit emulation due to UC_PROT_EXEC violation: uc_emu_start() - UC_ERR_INVAL, // Inavalid argument provided to uc_xxx function (See specific function API) + UC_ERR_ARG, // Inavalid argument provided to uc_xxx function (See specific function API) UC_ERR_READ_UNALIGNED, // Unaligned read UC_ERR_WRITE_UNALIGNED, // Unaligned write UC_ERR_FETCH_UNALIGNED, // Unaligned fetch @@ -411,12 +411,12 @@ typedef enum uc_prot { @uc: handle returned by uc_open() @address: starting address of the new memory region to be mapped in. - This address must be aligned to 4KB, or this will return with UC_ERR_INVAL error. + This address must be aligned to 4KB, or this will return with UC_ERR_ARG error. @size: size of the new memory region to be mapped in. - This size must be multiple of 4KB, or this will return with UC_ERR_INVAL error. + This size must be multiple of 4KB, or this will return with UC_ERR_ARG error. @perms: Permissions for the newly mapped region. This must be some combination of UC_PROT_READ | UC_PROT_WRITE | UC_PROT_EXEC, - or this will return with UC_ERR_INVAL error. + or this will return with UC_ERR_ARG error. @return UC_ERR_OK on success, or other value on failure (refer to uc_err enum for detailed error). @@ -430,9 +430,9 @@ uc_err uc_mem_map(uc_engine *uc, uint64_t address, size_t size, uint32_t perms); @handle: handle returned by uc_open() @address: starting address of the memory region to be unmapped. - This address must be aligned to 4KB, or this will return with UC_ERR_INVAL error. + This address must be aligned to 4KB, or this will return with UC_ERR_ARG error. @size: size of the memory region to be modified. - This size must be multiple of 4KB, or this will return with UC_ERR_INVAL error. + This size must be multiple of 4KB, or this will return with UC_ERR_ARG error. @return UC_ERR_OK on success, or other value on failure (refer to uc_err enum for detailed error). @@ -446,12 +446,12 @@ uc_err uc_mem_unmap(uc_engine *uc, uint64_t address, size_t size); @handle: handle returned by uc_open() @address: starting address of the memory region to be modified. - This address must be aligned to 4KB, or this will return with UC_ERR_INVAL error. + This address must be aligned to 4KB, or this will return with UC_ERR_ARG error. @size: size of the memory region to be modified. - This size must be multiple of 4KB, or this will return with UC_ERR_INVAL error. + This size must be multiple of 4KB, or this will return with UC_ERR_ARG error. @perms: New permissions for the mapped region. This must be some combination of UC_PROT_READ | UC_PROT_WRITE | UC_PROT_EXEC, - or this will return with UC_ERR_INVAL error. + or this will return with UC_ERR_ARG error. @return UC_ERR_OK on success, or other value on failure (refer to uc_err enum for detailed error). diff --git a/uc.c b/uc.c index 8282e82c..76a3f5f7 100644 --- a/uc.c +++ b/uc.c @@ -89,8 +89,8 @@ const char *uc_strerror(uc_err code) return "Read from non-readable memory (UC_ERR_READ_PROT)"; case UC_ERR_EXEC_PROT: return "Fetch from non-executable memory (UC_ERR_EXEC_PROT)"; - case UC_ERR_INVAL: - return "Invalid argumet (UC_ERR_INVAL)"; + case UC_ERR_ARG: + return "Invalid argumet (UC_ERR_ARG)"; case UC_ERR_READ_UNALIGNED: return "Read from unaligned memory (UC_ERR_READ_UNALIGNED)"; @@ -570,19 +570,19 @@ uc_err uc_mem_map(uc_engine *uc, uint64_t address, size_t size, uint32_t perms) if (size == 0) // invalid memory mapping - return UC_ERR_INVAL; + return UC_ERR_ARG; // address must be aligned to uc->target_page_size if ((address & uc->target_page_align) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; // size must be multiple of uc->target_page_size if ((size & uc->target_page_align) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; // check for only valid permissions if ((perms & ~UC_PROT_ALL) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; if ((uc->mapped_block_count & (MEM_BLOCK_INCR - 1)) == 0) { //time to grow regions = (MemoryRegion**)realloc(uc->mapped_blocks, @@ -728,15 +728,15 @@ uc_err uc_mem_protect(struct uc_struct *uc, uint64_t address, size_t size, uint3 // address must be aligned to uc->target_page_size if ((address & uc->target_page_align) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; // size must be multiple of uc->target_page_size if ((size & uc->target_page_align) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; // check for only valid permissions if ((perms & ~UC_PROT_ALL) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; // check that user's entire requested block is mapped if (!check_mem_area(uc, address, size)) @@ -775,7 +775,7 @@ uc_err uc_mem_unmap(struct uc_struct *uc, uint64_t address, size_t size) // address must be aligned to uc->target_page_size if ((address & uc->target_page_align) != 0) - return UC_ERR_INVAL; + return UC_ERR_ARG; // size must be multiple of uc->target_page_size if ((size & uc->target_page_align) != 0)