summary refs log tree commit diff stats
path: root/results/classifier/user-mode-bugs/1894029
blob: a6f9115e81dadf30ef8f5c0cce57737d981a45f7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
qemu-i386 malloc error

Hi!I use qemu-i386-static on 64 bit machines.And memory request succeeded, but the pointer is wrong.
This is my test program:

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
        void *pa=0,*pb=0,*pc=0,*pd=0;
        pa = malloc(sizeof(uint32_t));
        pb = malloc(sizeof(uint32_t));
        pc = malloc(4);
        pd = malloc(4);
        printf("pa: 0x%x\n",pa);
        printf("pb: 0x%x\n",pb);
        printf("pc: 0x%x\n",pc);
        printf("pd: 0x%x\n",pd);
        printf("uint32_t:%d\n",sizeof(uint32_t));
        free(pa);
        free(pb);
        free(pc);
        free(pd);
        return 0;
}

And it is wrong:

pa: 0x400051a0
pb: 0x400051b0
pc: 0x400051c0
pd: 0x400051d0
uint32_t:4

Why did I apply for 4 bytes of space, but the pointer only increased by 2 bytes??
Is it a BUG??