diff options
author | 2015-09-04 07:35:06 +0000 | |
---|---|---|
committer | 2015-09-04 07:35:06 +0000 | |
commit | ca6aa8198d2335f8c326c3dd4d26bf5899064214 (patch) | |
tree | 6274a2d971fc0cac0896efe8583927d0190e3d20 /moon-abe/pbc-0.5.14/guru/param_parse_test.c | |
parent | 92fd2dbfb672d7b2b1cdfd5dd5cf89f7716b3e12 (diff) | |
parent | 3baeb11a8fbcfcdbc31976d421f17b85503b3ecd (diff) |
Merge "init attribute-based encryption"
Diffstat (limited to 'moon-abe/pbc-0.5.14/guru/param_parse_test.c')
-rw-r--r-- | moon-abe/pbc-0.5.14/guru/param_parse_test.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/moon-abe/pbc-0.5.14/guru/param_parse_test.c b/moon-abe/pbc-0.5.14/guru/param_parse_test.c new file mode 100644 index 00000000..a345e2c1 --- /dev/null +++ b/moon-abe/pbc-0.5.14/guru/param_parse_test.c @@ -0,0 +1,26 @@ +// Exercises a bug reported by Michael Adjedj. +// +// In ecc/param.c, token_get() would increment a pointer past a terminating +// NUL, so the parser would keep attempting to read key/value pairs for a +// symbol table. If the memory after the string contains a duplicate key, +// then we have a memory leak because we strdup the value and misc/symtab.c +// overwrites existing elements during insert. +// +// Run with valgrind to spot the bug. +#include "pbc.h" + +int main(void) { + pairing_t p; + pairing_init_set_str(p, +"type a\n" +"q 8780710799663312522437781984754049815806883199414208211028653399266475630880222957078625179422662221423155858769582317459277713367317481324925129998224791\n" +"h 12016012264891146079388821366740534204802954401251311822919615131047207289359704531102844802183906537786776\n" +"r 730750818665451621361119245571504901405976559617\n" +"exp2 159\n" +"exp1 107\n" +"sign1 1\n" +"sign0 1\0a b a b\n" + ); + pairing_clear(p); + return 0; +} |