Live data from Hacker News

Sandsifter: x86 processor fuzzer

github.com

1–10 of 19 posts

Re: Sandsifter: x86 processor fuzzer

#3
Can anyone actually get this to compile? I failed last year, and it's still failing:

    $ CFLAGS=-fPIC make clean all
    rm -f *.o injector
    cc -fPIC -c injector.c -o injector.o -Wall
    injector.c:321:93: warning: excess elements in array initializer
      .start={.bytes={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, .len=0},
                                                                                                 ^~~~
    injector.c:321:93: note: (near initialization for ‘total_range.start.bytes’)
    injector.c:322:91: warning: excess elements in array initializer
      .end={.bytes={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, .len=0},
                                                                                               ^~~~
    injector.c:322:91: note: (near initialization for ‘total_range.end.bytes’)
    injector.c: In function ‘inject’:
    injector.c:778:2: warning: asm operand 15 probably doesn’t match constraints
      __asm__ __volatile__ ("\
      ^~~~~~~
    injector.c:778:2: error: impossible constraint in ‘asm’
    make: *** [Makefile:38: injector.o] Error 1
    2

Re: Sandsifter: x86 processor fuzzer

#5

Can anyone actually get this to compile? I failed last year, and it's still failing: $ CFLAGS=-fPIC make clean all rm -f *.o injector cc -fPIC -c injector.c -o injector.o -Wall injector.c:321:93: warning: excess elements in array initializer .start={.bytes={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, .len=0}, ^~~~ injector.c:321:93: note: (near initialization for ‘total_range.sta…

Seems like using immediate values in inline assembly operands can be fragile depending on what optimizations the compiler decides to apply. Try building with -ftree-ter in your CFLAGS, as suggested by https://stackoverflow.com/a/11518308

Re: Sandsifter: x86 processor fuzzer

#6

Can anyone actually get this to compile? I failed last year, and it's still failing: $ CFLAGS=-fPIC make clean all rm -f *.o injector cc -fPIC -c injector.c -o injector.o -Wall injector.c:321:93: warning: excess elements in array initializer .start={.bytes={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, .len=0}, ^~~~ injector.c:321:93: note: (near initialization for ‘total_range.sta…

Seems like using immediate values in inline assembly operands can be fragile depending on what optimizations the compiler decides to apply. Try building with -ftree-ter in your CFLAGS, as suggested by https://stackoverflow.com/a/11518308

I figured it out, it's because Debian enables PIE and that somehow causes GCC not to be able to satisfy its own rules for allowing inline-assembly to modify %rsp to the value required by this program.

Re: Sandsifter: x86 processor fuzzer

#8

Earlier quoted context omitted.

Seems like using immediate values in inline assembly operands can be fragile depending on what optimizations the compiler decides to apply. Try building with -ftree-ter in your CFLAGS, as suggested by https://stackoverflow.com/a/11518308

I figured it out, it's because Debian enables PIE and that somehow causes GCC not to be able to satisfy its own rules for allowing inline-assembly to modify %rsp to the value required by this program.

You ought to update your pull request, then! I'm not sure why they don't accept regular issues.
Post reply on HN