From d1ebe17c8a84f819caeb7e3b9bdd925eac816e4a Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 23 Sep 2011 09:14:15 +0000 Subject: [PATCH] Clarified -p option in ldns-verify-zone. Bugfix #410: Don't leak sha temporary data on the stack Fix tests to take (DY)LD_LIBRARY_PATH into account --- Changelog | 3 ++- examples/ldns-verify-zone.1 | 4 +++- sha2.c | 6 +++--- test/03-run.tpkg | Bin 818 -> 837 bytes test/04-run-normal.tpkg | Bin 799 -> 828 bytes test/18-drill-tests1.tpkg | Bin 8188 -> 8314 bytes 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Changelog b/Changelog index 3747e8c9..68f9abfd 100644 --- a/Changelog +++ b/Changelog @@ -3,7 +3,7 @@ * bugfix #392: Apex only and percentage checks for ldns-verify-zone (thanks Miek Gieben) * bugfix #398: Allow NSEC RRSIGs before the NSEC3 in ldns-verify-zone - * Fix python site package path to /usr/lib64. + * Fix python site package path from sitelib to sitearch for pyldns. * Fix python api to support python2 and python3 (thanks Karel Slany). * bugfix #401: Correction of date/time functions algorithm and prevention of an infinite loop therein @@ -40,6 +40,7 @@ The ldnsx module is automatically installed when --with-pyldns is used with configuring, but may explicitly be excluded with the --without-pyldnsx option to configure. + * bugfix #410: Fix clearing out temporary data on stack in sha2.c 1.6.10 2011-05-31 * New example tool added: ldns-gen-zone. diff --git a/examples/ldns-verify-zone.1 b/examples/ldns-verify-zone.1 index 175ee2dd..092fb213 100644 --- a/examples/ldns-verify-zone.1 +++ b/examples/ldns-verify-zone.1 @@ -20,7 +20,9 @@ Apex only, check only the zone apex .TP \fB-p\fR \fI[0-100]\fR -Only check this percentage of the zone. Defaults to 100. +Only check this percentage of the zone. +Which names to check is determined randomly. +Defaults to 100. .TP \fB-h\fR diff --git a/sha2.c b/sha2.c index 26b7716a..6ba4ab5c 100644 --- a/sha2.c +++ b/sha2.c @@ -605,7 +605,7 @@ void ldns_sha256_final(sha2_byte digest[], ldns_sha256_CTX* context) { } /* Clean up state data: */ - MEMSET_BZERO(context, sizeof(context)); + MEMSET_BZERO(context, sizeof(ldns_sha256_CTX)); usedspace = 0; } @@ -915,7 +915,7 @@ void ldns_sha512_final(sha2_byte digest[], ldns_sha512_CTX* context) { } /* Zero out state data */ - MEMSET_BZERO(context, sizeof(context)); + MEMSET_BZERO(context, sizeof(ldns_sha512_CTX)); } unsigned char * @@ -968,7 +968,7 @@ void ldns_sha384_final(sha2_byte digest[], ldns_sha384_CTX* context) { } /* Zero out state data */ - MEMSET_BZERO(context, sizeof(context)); + MEMSET_BZERO(context, sizeof(ldns_sha384_CTX)); } unsigned char * diff --git a/test/03-run.tpkg b/test/03-run.tpkg index 2eaf75fe0dc1c66bbf95204f752d41e4ceaca608..dc40c10b6a6ef08347dc2bacd62de127f40ea9d4 100644 GIT binary patch literal 837 zc-jF)1G@YliwFSvMSM;G1MQeuZ`(K!$NkJtF^G-sOC{^DY^=Izo5b4#n-)glU7#q6 zfVM_98=2ISRF0SZ>^oHK=4|ugX154`fOT+4&Wx$~({hvsx{+ZabiebXh=@^^xpO?q zqO0c(oj4w*qiB$fhH)o~lO#<#ko~ZTuFx3EH9+T7R28ni-S0m8PfB#T{_D#nR`r&B z5W^_?_WEaoP8_9aJRFYFB&GEq#POg5(RRbQn@7I>=3J`U2$O@Yj~5Vd_^sx4395vu zkmfny8N$Vr!T#%5J=^DY{aZBlpY8hie*Kg5lm189FrxZTvZ1U0G>d)xKLlOq1_4}I zdI*9p>w-~@o+H>L!ipP<8cyhIDn*5Gx6_i2JLdhy=)Rc=nXixTzEX2u^>5s^ z=8%#5QfQi!>jj7l-?K(k1yHrI>Ew^sNBe)iJsj`$V#ekL^e&s+ZK3Ij>(eAI5-_+Z zc~e;mR!Pb<0IA3z7hsmEp*d%iVVcLQ5 z$M5vMW!&*w$j{Gh{V&XX+dl4j|0m(UeE%OMr2pw?ka+!n2==+b_k4x<<|Y3x)J7m;EZ(OfQBxVKF@(2s8y{bN}E#*HOj(J;~T8%O`PrD zRBWQj7n_jqmU;H z@pb->QtSUH3d#RbIw1cK<0R=ou;qPR$zSgOJ#O#~Ut$I;_p^7XjZiX!&=1%M%}k4` zZaYW{xfW#!T;^a9K@=cr_^kA?Vfz}n9XH}NEjDQo-l!9R5W-uM)fY;GkkCF;r{GgkS<&$=Q(dX=~4d$}3o&!jeigUzXri5JyqO3aX`cdQTWt zfghk}Tj1d*s`x%Ww6;nHYr3YH&Cr;y9e7G*WAKm_g0+wBWOuyW1y|?)FWc2|L;eqw w%m4r5FpXXQzYSde|6B9FOY#nf!{Kl^91e%W;cz${4#%I)|LDmKMgS-P0NAvh^Z)<= diff --git a/test/04-run-normal.tpkg b/test/04-run-normal.tpkg index ff024596e2fe96d5c9443a78605b8de36348d20e..5776c48b07a2a79db1fd06eabb286ee5ac0adbc1 100644 GIT binary patch literal 828 zc-jFx1H=3uiwFRHM0`#F1MQbzZ__Xk!29e^aoQ?)SyHEIS`iqqtuPP+Rj43MW18H? z?aWfUvYl;x;j?qjHdtG>f;tt({F9nAKHGQxb7voI1iFxcRC>hnFcZ2~xpOGeN)q>u zS_!@WzM>LE&A3Gy^(bjnXcQ+=Qi0^|O_`@KmT7>>naFcKy1CvW`8|cst^ah1<;E_p z18Guv)B59*&#r&7RgWq_?_z+9c;M^54(mYxGmk2#E(v0TF` zPSZf-9L|op1YsW=C)J!BKrnzXtc7-bG7Pa=c-i6*9zDA1=ofO-QW%u{C@$3xlm;Q8 z{Evl#^-$%Q86)KIQq^>WDJ@eXH;hwhxIX2ex#7077(27a8!%A?j%)&w^9-y4mVL#o zfaBVLT%5R(3zL%0R`<`pfHB z;Qx(!^3(rg>ij>UE${!UV4E5KfsJ@NKisS2N z(wckDsD(kC1WD40qNEmt%_wfvAYT7gex}rhD}dSs<_0ggylvbv{R1WV$^Q!y-Cx}X zk&usX^MA7ulmDYAOj?a7qH!U;22l-yHJooL|GEEnxyE;VgelDVoqa&1MIloN{eZPm z_mvo%N)0s>?1&3#=!YtWBY~IjT3`<)+oP%Hg_@?o_KMNCkSI+`dl{q5Gzs5eK3>?i zKO`CJC^E@9g{I+Mq;_GDAsO2#ul7ZbcA*Z}8ncw`bCH)cm)*Bh?vQ2iZ!dIZ8%yFp zNTMI{-;8bi$6?~)|1Qu|S&X%yFfilGbMQDk9dk2;VgPw2^>e^0Tu2S~y=BK5Sr-2` zSFUX1_wgS_@nZc))ne@8|1Q{o4bOuhvOcez4W75bHb57p>LZvT!iZ~w3MO<-1NvgZ z=OIcE=8?8qh3o{p0r-C1w;9BzVg78!DQshvQlc&d>2>d2ZaJ5q54lk!FyzK zOkZfKEoP?XC(K!yQ`uuoq((JCP^i&VI|iHIwqaV7bh0T(#0(78FWCjX3Usb*$i<~S zIVDBb+3CJ{wrSh6UTRg>Jt5OsYx{Z8=XrghTd93U<_AL2np~ZOxVGIZMNUPNP^{Z| z`}%D6{lQ`T*=ERCKZDI5BHOKMtU5bvpB*0T9`77~JgYWiFESTB4egJ&s{HzOf%fv! zS4CmG>I#(hB^nrA!H9}1U*`7SKCQI=&Bd4)z{v@0z5q|s7XwaDpV$*i1~c$V7zo)w zu+`3V!|1%t@OL)vJI?-9{v`i@S=Gjp{NHG_7W02AcJ<$#;PU@N&Hrmj@_#LpyL9bv dI2;a#!{Kl^91e%W;c(nPUjb7#d@lef005>`kiGx_ diff --git a/test/18-drill-tests1.tpkg b/test/18-drill-tests1.tpkg index 6fc5dd940ede2a48669f15f1c6b6f9bb8c8c2580..0dd5163a40e8d4cba02e0f8af5b39bd57251fffe 100644 GIT binary patch literal 8314 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 -- 2.47.3