Skip to content

make generates error #4

@D3vil0p3r

Description

@D3vil0p3r

By running make, it generates the following error:

clang -o callback/demo-callback.o -Wall -fPIC -g -DUF_DEBUG -c callback/demo-callback.c
callback/demo-callback.c:46:29: warning: incompatible pointer types assigning to 'uint32_t *' (aka 'unsigned int *') from 'char *' [-Wincompatible-pointer-types]
   46 |             heapBoundaryGOT = (char *)baseAddr + HEAP_BOUNDARY_GOT_OFFSET;
      |                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
callback/demo-callback.c:61:27: error: incompatible pointer to integer conversion passing 'char *' to parameter of type 'uint64_t' (aka 'unsigned long') [-Wint-conversion]
   61 |     if(uc_mem_map_ptr(uc, heapBase, HEAP_SIZE, UC_PROT_READ | UC_PROT_WRITE, heapBase) != UC_ERR_OK) {
      |                           ^~~~~~~~
/usr/include/unicorn/unicorn.h:945:47: note: passing argument to parameter 'address' here
  945 | uc_err uc_mem_map_ptr(uc_engine *uc, uint64_t address, size_t size,
      |                                               ^
callback/demo-callback.c:74:27: error: incompatible pointer to integer conversion passing 'char *' to parameter of type 'uint64_t' (aka 'unsigned long') [-Wint-conversion]
   74 |     if(uc_mem_map_ptr(uc, stackTop, STACK_SIZE, UC_PROT_READ | UC_PROT_WRITE, stackTop) != UC_ERR_OK) {
      |                           ^~~~~~~~
/usr/include/unicorn/unicorn.h:945:47: note: passing argument to parameter 'address' here
  945 | uc_err uc_mem_map_ptr(uc_engine *uc, uint64_t address, size_t size,
      |                                               ^
callback/demo-callback.c:87:27: error: incompatible pointer to integer conversion passing 'char *' to parameter of type 'uint64_t' (aka 'unsigned long') [-Wint-conversion]
   87 |     if(uc_mem_map_ptr(uc, dataAddr, DATA_SIZE, UC_PROT_READ | UC_PROT_WRITE, dataAddr) != UC_ERR_OK) {
      |                           ^~~~~~~~
/usr/include/unicorn/unicorn.h:945:47: note: passing argument to parameter 'address' here
  945 | uc_err uc_mem_map_ptr(uc_engine *uc, uint64_t address, size_t size,
      |                                               ^
callback/demo-callback.c:96:9: error: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'char *' [-Wint-conversion]
   96 |     reg = stackTop+STACK_SIZE - 0x200;
      |         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
callback/demo-callback.c:99:9: error: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'char *' [-Wint-conversion]
   99 |     reg = dataAddr;
      |         ^ ~~~~~~~~
callback/demo-callback.c:125:22: error: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'char *' [-Wint-conversion]
  125 |     *heapBoundaryGOT = heapBase;
      |                      ^ ~~~~~~~~
callback/demo-callback.c:156:15: error: incompatible integer to pointer conversion initializing 'uint32_t *' (aka 'unsigned int *') with an expression of type 'uint32_t' (aka 'unsigned int'); remove * [-Wint-conversion]
  156 |     uint32_t *boundary = *heapBoundaryGOT;
      |               ^          ~~~~~~~~~~~~~~~~
callback/demo-callback.c:159:15: warning: incompatible pointer types initializing 'uint32_t *' (aka 'unsigned int *') with an expression of type 'char *' [-Wincompatible-pointer-types]
  159 |     uint32_t *start = heapBase;
      |               ^       ~~~~~~~~
callback/demo-callback.c:175:15: warning: incompatible pointer types assigning to 'uint32_t *' (aka 'unsigned int *') from 'char *' [-Wincompatible-pointer-types]
  175 |         start = (char *)start + chunk_len + 8;
      |               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings and 7 errors generated.
make: *** [Makefile:23: callback/demo-callback.o] Error 1

Please @rk700 can you fix it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions