On Thu, Sep 22, 2016 at 09:03:57PM +0200, Markus Wichmann wrote:
> On Thu, Sep 22, 2016 at 08:04:44PM +0200, u...@netbeisser.de wrote:
> > main.c:7:10: error: expected ???=???, ???,???, ???;???, ???asm??? or 
> > ???__attribute__??? before ???void???
> >  noreturn void __stack_chk_fail(void);
 
> noreturn is already a return type (in as much as void is one, namely
> syntactically), so remove the "void" and you should be fine.
> 
> > tried 
> > void __stack_chk_fail(void) __attribute ((noreturn));
> > instead.
 
> That however only works with gcc and compatibles.
 

Thanks for pointing out. In the meantime I wrote this, because I had a look at 
libssp.
I will call it money :)


#include <string.h>

int main(int argc, char **argv) {

if (strstr(argv[1],"buf")) {
__chk_fail();
} else if (strstr(argv[1],"fmt")) {
__stack_chk_fail();
}
return 0;
}

Reply via email to