Merge branch 'v0.10'
[platform/upstream/nodejs.git] / src / node_crypto.cc
index b826a12..b1cddff 100644 (file)
@@ -1499,7 +1499,9 @@ Handle<Value> Connection::ClearIn(const Arguments& args) {
 
   int bytes_written = SSL_write(ss->ssl_, buffer_data + off, len);
 
-  ss->HandleSSLError("SSL_write:ClearIn", bytes_written, kZeroIsAnError);
+  ss->HandleSSLError("SSL_write:ClearIn",
+                     bytes_written,
+                     len == 0 ? kZeroIsNotAnError : kZeroIsAnError);
   ss->SetShutdownFlags();
 
   return scope.Close(Integer::New(bytes_written, node_isolate));
@@ -3174,7 +3176,8 @@ Handle<Value> DiffieHellman::ComputeSecret(const Arguments& args) {
   // allocated buffer.
   if (size != dataSize) {
     assert(dataSize > size);
-    memset(data + size, 0, dataSize - size);
+    memmove(data + dataSize - size, data, size);
+    memset(data, 0, dataSize - size);
   }
 
   Local<Value> outString;