From aa3913e3a87112594908e1e07dfe76806f54cf41 Mon Sep 17 00:00:00 2001
From: Qianqian Fang <fangqq@gmail.com>
Date: Wed, 23 Feb 2022 23:57:57 -0500
Subject: [PATCH] disable TFN marker in optimized header due to security risk
 and low benefit

---
 loadbj.m | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/loadbj.m b/loadbj.m
index 1560493..7c68d62 100644
--- a/loadbj.m
+++ b/loadbj.m
@@ -201,18 +201,14 @@ function [data, adv]=parse_block(inputstr, pos, type,count,varargin)
                 data=cell(1,count);
                 adv=pos;
                 for i=1:count
-                        [data{i}, pos] = parse_value(inputstr, pos, type, varargin{:});
+                    [data{i}, pos] = parse_value(inputstr, pos, type, varargin{:});
                 end
                 adv=pos-adv;
             case 'C'
                 data=inputstr(pos:pos+count);
                 adv=count;
-            case 'T'
-                data=true(1,count);
-            case 'F'
-                data=false(1,count);
-            case 'N'
-                data=cell(1,count);
+            case {'T','F','N'}
+                error_pos(sprintf('For security reasons, optimized type %c is disabled at position %%d', type),inputstr, pos);
             otherwise
                 error_pos(sprintf('Unsupported optimized type %c at position %%d', type),inputstr, pos);
         end
@@ -221,7 +217,6 @@ function [data, adv]=parse_block(inputstr, pos, type,count,varargin)
     [cid,len]=elem_info(inputstr, pos, type);
     datastr=inputstr(pos:pos+len*count-1);
     newdata=uint8(datastr);
-    %id=strfind('iUIulmLMhdD',type);
     if(varargin{1}.flipendian_)
         newdata=swapbytes(typecast(newdata,cid));
     end
-- 
GitLab