Explorar o código

Merge pull request #44 from sharelatex/bg-add-null-byte-checks

add null byte checks
Brian Gough %!s(int64=9) %!d(string=hai) anos
pai
achega
7497c066ee
Modificáronse 1 ficheiros con 10 adicións e 0 borrados
  1. 10 0
      services/document-updater/app/coffee/RedisManager.coffee

+ 10 - 0
services/document-updater/app/coffee/RedisManager.coffee

@@ -162,6 +162,12 @@ module.exports = RedisManager =
 				return callback(error)
 
 			jsonOps = appliedOps.map (op) -> JSON.stringify op
+			for op in jsonOps
+				if op.indexOf("\u0000") != -1
+					error = new Error("null bytes found in jsonOps")
+					logger.error err: error, doc_id: doc_id, jsonOps: jsonOps, error.message
+					return callback(error)
+
 			newDocLines = JSON.stringify(docLines)
 			if newDocLines.indexOf("\u0000") != -1
 				error = new Error("null bytes found in doc lines")
@@ -176,6 +182,10 @@ module.exports = RedisManager =
 				if error?
 					logger.error {err: error, doc_id}, error.message
 					return callback(error)
+				if ranges? and ranges.indexOf("\u0000") != -1
+					error = new Error("null bytes found in ranges")
+					logger.error err: error, doc_id: doc_id, ranges: ranges, error.message
+					return callback(error)
 				multi = rclient.multi()
 				multi.eval setScript, 1, keys.docLines(doc_id:doc_id), newDocLines  # index 0
 				multi.set    keys.docVersion(doc_id:doc_id), newVersion             # index 1