There's a simple bug in the CVC parser that was causing stp to crash for us. Here's the error as told by valgrind:
ed@ed-Ubu64:/tmp/0x00020e6f.0x223c0f19-3$ valgrind stp -v http---graphics8.nytimes.com-adx-images-ADS-25-81-ad.258131-12.18.10_TB_HL_LivingRoom.jpg.6.0x009c4a60.stp
==8888== Memcheck, a memory error detector
==8888== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==8888== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==8888== Command: stp -v http---graphics8.nytimes.com-adx-images-ADS-25-81-ad.258131-12.18.10_TB_HL_LivingRoom.jpg.6.0x009c4a60.stp
==8888==
==8888== Mismatched free() / delete / delete []
==8888== at 0x4C27FFF: operator delete(void*) (vg_replace_malloc.c:387)
==8888== by 0x4389F0: cvcparse(void*) (cvc.y:1080)
==8888== by 0x40606F: main (main.cpp:530)
==8888== Address 0x5d4b400 is 0 bytes inside a block of size 10 alloc'd
==8888== at 0x4C28FAC: malloc (vg_replace_malloc.c:236)
==8888== by 0x56522F1: strdup (strdup.c:43)
==8888== by 0x42DDB6: cvclex() (cvc.lex:152)
==8888== by 0x4359F1: cvcparse(void*) (parsecvc.cpp:1816)
==8888== by 0x40606F: main (main.cpp:530)
--- src/parser/cvc.y (revision 1401)
+++ src/parser/cvc.y (working copy)
@@ -1077,7 +1077,7 @@
//2. Ensure that LET variables are not
//2. defined more than once
parserInterface->letMgr.LetExprMgr($1,*$3);
- delete $1;
+ free($1);
delete $3;
}
| STRING_TOK ':' Type '=' Expr