瀏覽代碼

Disallow negative size values

KernelDeimos 1 年之前
父節點
當前提交
1f6a2093fb
共有 2 個文件被更改,包括 9 次插入1 次删除
  1. 4 0
      packages/backend/src/api/APIError.js
  2. 5 1
      packages/backend/src/routers/filesystem_api/batch/all.js

+ 4 - 0
packages/backend/src/api/APIError.js

@@ -220,6 +220,10 @@ module.exports = class APIError {
             status: 400,
             message: 'Missing fileinfo entry or BLOB for operation.',
         },
+        'invalid_file_metadata': {
+            status: 400,
+            message: 'Invalid file metadata.',
+        },
 
         // Open
         'no_suitable_app': {

+ 5 - 1
packages/backend/src/routers/filesystem_api/batch/all.js

@@ -192,7 +192,11 @@ module.exports = eggspress('/batch', {
             }
 
             if ( fieldname === 'fileinfo' ) {
-                fileinfos.push(JSON.parse(value));
+                const fileinfo = JSON.parse(value);
+                if ( fileinfo.size < 0 ) {
+                    throw APIError.create('invalid_file_metadata');
+                }
+                fileinfos.push(fileinfo);
                 return;
             }