commit f9962fb: [Minor] Fix one corner case

Vsevolod Stakhov vsevolod at rspamd.com
Thu Sep 28 13:49:04 UTC 2023


Author: Vsevolod Stakhov
Date: 2023-09-28 14:41:22 +0100
URL: https://github.com/rspamd/rspamd/commit/f9962fb58f9463a9c8969c74871046dbc4c1668c (HEAD -> master)

[Minor] Fix one corner case

---
 lualib/lua_content/pdf.lua | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/lualib/lua_content/pdf.lua b/lualib/lua_content/pdf.lua
index a8b6e984a..f6d5c0bc0 100644
--- a/lualib/lua_content/pdf.lua
+++ b/lualib/lua_content/pdf.lua
@@ -428,18 +428,23 @@ local function maybe_extract_object_stream(obj, pdf, task)
   if dict.Length and type(obj.stream) == 'table' then
     local len = math.min(obj.stream.len,
         tonumber(maybe_dereference_object(dict.Length, pdf, task)) or 0)
-    local real_stream = obj.stream.data:span(1, len)
+    if len > 0 then
+      local real_stream = obj.stream.data:span(1, len)
 
-    local uncompressed, filter_err = maybe_apply_filter(dict, real_stream, pdf, task)
+      local uncompressed, filter_err = maybe_apply_filter(dict, real_stream, pdf, task)
 
-    if uncompressed then
-      obj.uncompressed = uncompressed
-      lua_util.debugm(N, task, 'extracted object %s:%s: (%s -> %s)',
-          obj.major, obj.minor, len, uncompressed:len())
-      return obj.uncompressed
+      if uncompressed then
+        obj.uncompressed = uncompressed
+        lua_util.debugm(N, task, 'extracted object %s:%s: (%s -> %s)',
+            obj.major, obj.minor, len, uncompressed:len())
+        return obj.uncompressed
+      else
+        lua_util.debugm(N, task, 'cannot extract object %s:%s; len = %s; filter = %s: %s',
+            obj.major, obj.minor, len, dict.Filter, filter_err)
+      end
     else
-      lua_util.debugm(N, task, 'cannot extract object %s:%s; len = %s; filter = %s: %s',
-          obj.major, obj.minor, len, dict.Filter, filter_err)
+      lua_util.debugm(N, task, 'cannot extract object %s:%s; len = %s',
+          obj.major, obj.minor, len)
     end
   end
 end


More information about the Commits mailing list