diff options
author | Mathias Stearn <mathias@10gen.com> | 2010-08-11 19:24:27 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2010-08-11 19:38:13 -0400 |
commit | 39cfee21a367812962c1137e67bd7e50bb54b874 (patch) | |
tree | b4b548584e6530e1be21d1cf52aa06d3fe818668 /scripting | |
parent | 69e92f803d6132ef1f00c320880f743d27dc1f2d (diff) | |
download | mongo-39cfee21a367812962c1137e67bd7e50bb54b874.tar.gz |
plug leak in Scope::execFile
Diffstat (limited to 'scripting')
-rw-r--r-- | scripting/engine.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/scripting/engine.cpp b/scripting/engine.cpp index 923250f8229..6238fdfb69f 100644 --- a/scripting/engine.cpp +++ b/scripting/engine.cpp @@ -130,11 +130,13 @@ namespace mongo { fileofs L = f.len(); assert( L <= 0x7ffffffe ); - char * data = (char*)malloc( (size_t) L+1 ); + boost::scoped_array<char> data (new char[L+1]); data[L] = 0; - f.read( 0 , data , (size_t) L ); + f.read( 0 , data.get() , (size_t) L ); + + StringData code (data.get(), L); - return exec( data , filename , printResult , reportError , assertOnError, timeoutMs ); + return exec( code , filename , printResult , reportError , assertOnError, timeoutMs ); } void Scope::storedFuncMod(){ |