blob: c30a0bf0344eabdb41f6a864b0e068df88c57adb [file] [log] [blame]
/* Call free cast from a decomposed integer */
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
uint32_t high;
uint32_t low;
void call(void *data)
{
void (*func)(void *);
func = (void (*)(void *)) ((((uint64_t) high) << 32) | low);
printf("%p\n", func);
printf("%p\n", free);
func(data);
free(data);
}
int main()
{
void *data;
high = (uint32_t) ((((uint64_t) &free) & 0xffffffff00000000L) >> 32);
low = (uint32_t) &free;
data = malloc(1000);
call(data);
return 0;
}