From ca7c332f20ab765a51e1765e8ea20a00e075224f Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Thu, 12 May 2022 10:14:19 +0000 Subject: [PATCH] fix: avoiding use of md5() in sysfunc(). Closes #239 --- all.sas | 5 +++-- base/mp_hashdataset.sas | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/all.sas b/all.sas index c878fa5..a9ebb87 100644 --- a/all.sas +++ b/all.sas @@ -8385,7 +8385,7 @@ run; %if %mf_getattrn(&libds,NLOBS)=0 %then %do; data &outds; length hashkey $32; - retain hashkey "%sysfunc(md5(%str(&salt)),$hex32.)"; + hashkey=md5("&salt",$hex32.); output; stop; run; @@ -8402,7 +8402,8 @@ run; %end; ; length &prevkeyvar &keyvar $32; - retain &prevkeyvar "%sysfunc(md5(%str(&salt)),$hex32.)"; + retain &prevkeyvar; + if _n_=1 then &prevkeyvar=md5("&salt",$hex32.); set &libds end=&lastvar; /* hash should include previous row */ &keyvar=%mp_md5( diff --git a/base/mp_hashdataset.sas b/base/mp_hashdataset.sas index 0cf88e8..9486d21 100644 --- a/base/mp_hashdataset.sas +++ b/base/mp_hashdataset.sas @@ -58,7 +58,7 @@ %if %mf_getattrn(&libds,NLOBS)=0 %then %do; data &outds; length hashkey $32; - retain hashkey "%sysfunc(md5(%str(&salt)),$hex32.)"; + hashkey=md5("&salt",$hex32.); output; stop; run; @@ -75,7 +75,8 @@ %end; ; length &prevkeyvar &keyvar $32; - retain &prevkeyvar "%sysfunc(md5(%str(&salt)),$hex32.)"; + retain &prevkeyvar; + if _n_=1 then &prevkeyvar=md5("&salt",$hex32.); set &libds end=&lastvar; /* hash should include previous row */ &keyvar=%mp_md5(