I hereby claim:
- I am aedrax on github.
- I am psorensen (https://keybase.io/psorensen) on keybase.
- I have a public key ASDgntKbH49vdtDyq2ArHGpfCINhYTskyK9J5UNdREgo7Ao
To claim this, I am signing this object:
#define DEFER_MERGE(a, b) a##b | |
#define DEFER_VARNAME(a) DEFER_MERGE(defer_scopevar_, a) | |
#define DEFER_FUNCNAME(a) DEFER_MERGE(defer_scopefunc_, a) | |
#define DEFER(BLOCK) \ | |
void DEFER_FUNCNAME(__LINE__)(__attribute__((unused)) int *a) { BLOCK; } \ | |
__attribute__((cleanup(DEFER_FUNCNAME(__LINE__)))) int DEFER_VARNAME(__LINE__) | |
// Usage: | |
/* | |
void dosomething() |
// gcc -g -fno-stack-protector main.c | |
#include <stdio.h> | |
void sneaky() { | |
puts("you win!\n"); | |
} | |
void foo() { | |
char buffer[10]; | |
gets(buffer); |
I hereby claim:
To claim this, I am signing this object: