summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2010-08-11 19:24:27 -0400
committerMathias Stearn <mathias@10gen.com>2010-08-11 19:38:13 -0400
commit39cfee21a367812962c1137e67bd7e50bb54b874 (patch)
treeb4b548584e6530e1be21d1cf52aa06d3fe818668 /scripting
parent69e92f803d6132ef1f00c320880f743d27dc1f2d (diff)
downloadmongo-39cfee21a367812962c1137e67bd7e50bb54b874.tar.gz
plug leak in Scope::execFile
Diffstat (limited to 'scripting')
-rw-r--r--scripting/engine.cpp8
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(){