Xenix 386 crypt fix.

Keith Gabryelski ag at portnoy.CTS.COM
Sat Apr 2 10:33:18 AEST 1988


See previous post for an explanation of the bug and a test program.

This binary patch is for 386 SCO Xenix users.

I could have just as easily posted just the new crypt.o, but to avoid
any legal problems I made it so that you have to have the old broken
crypt.o in order to get the new one.

The bug was found and fixed by myself Michael Ditto (ford at kenobi.UUCP)
using only our bare hands and adb (Well, with some help from M-x
compare-windows, etc.).

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	ORIGScrypt.o	(A copy of the old (broken) Scrypt.o 286 small module)
#	ORIGMcrypt.o	(A copy of the old (broken) Mcrypt.o 286 middle module)
#	ORIGLcrypt.o	(A copy of the old (broken) Lcrypt.o 286 large module)
#	ORIGcrypt.o	(A copy of the old (broken) crypt.o 386 library)
#	NEWScrypt.o	(A copy of the new (fixed) Scrypt.o small module)
#	NEWMcrypt.o	(A copy of the new (fixed) Mcrypt.o middle module)
#	NEWLcrypt.o	(A copy of the new (fixed) Lcrypt.o large module)
#	NEWcrypt.o	(A copy of the new (fixed) Lcrypt.o 386 library)
#    The new [SML3]crypt.o will also be installed in /lib/[SML]libc.a and
#    /lib/386/libc.a
#
# This archive created: Fri Apr  1 12:33:07 1988
export PATH; PATH=/bin:$PATH
if test -f '386patch'
then
	echo shar: will not over-write existing file "'386patch'"
else
cat << \SHAR_EOF > '386patch'
begin 666 386patch
M                                                            
M                          ,      ']HC at 8 H:!"%6&AN"X !D(#%1T:
M!55:"Q$=#%!'# L!0%H;!14514 %%15$1 at P!'0=06QT1 %!!$0!LII )J3-5
M!  #!P4/P) )J>%3 P % P=?SY )J:D    '  :G/Y )J<-N!  ( 0 at TKY((
M OW\_/O[_53+D T  P(#  ,"!T1!1$2^,Z0H"E4 /@(1!@$&%@%E!E at L%A$?
M#AQY!ED\$0L)!'0(5SH+#1$+"01T*HOO50$"    .@@8"#@(& @^"!@(. @8
M"#H(& @X"!@(1G@(& @X"!@Q"!@(. @8"#H(& @X"!@(/@@8"#@(& @Z"!@(
M. @8""\@." H(%A@!R H(#@@*" Y("@@." H(#L@*" X("@@.2 H(#@@*" _
M("@@." H(#D@*" X("@@.R H(#@@*" @"!@(. @8"#L(& @X"!@(.0 at 8"#@(
M& @_"!@(&P at 8"#@(& @Y"!@(. @8"#L(& @X"!@(&0 at 8" 4  P       P, 
M      ,/'QH3&00&'Q,)$Q\=!!\('A(8%QP/&0\K'2LZ"A at I-AL>#!$<'18?
M&A<;!!@6.3T (0,!!P$! 0,!#P$! 0,!!P$! 0,!'P$! 0,!!P$! 0,!#P$!
M 0,!!P$! 0,!/R$/"@D, PT$ PL)# H)# D'!P\( PH,#PP+# H' @P&"PP%
M#P8%"P0)! ,%#@0)#P4/ P0*!@T(!@(." T$"@8+ @X)!@@-" <-#@4/ 0P%
M#PD."0,(#0H& @P!"PP/ @X%#@D, 0X)# 0-! H/"@$- @4""P(,"P8)#0$+
M# 4+!P,*"0<(!0P*! P!"PP/!@H%"@<)"@<"# @*#0L"!P0.# L"#0$'# ,+
M"@,."0\$"08+!PT&#P$/ PL!#0 at .!PX+"@,- P8/ PL#"@T.!P at + @4##@,)
M#P,' P4.#0L$!P,,#PD,!PP* @X"#0L'"@P'# \&# L,!0$- 0X'"P4,# X(
M!08- 0T.#08, @T.!P<%"0X( PH,! 4/!0D* 0X"!@,* 0<*#P<&!0D#!0,.
M!0,$"P8/# \+"0\) PX!!@\-"P4&"P0." T.!PH) @X!!0L&!0L%# ,'# ,.
M"P at + 0<!"@<*! \$!P0."PP&#0(' 0X%# H% 04/!@$&" 4)#PD, 0\(!0X/
M!0X"#PP'# T+# ,-" L$#08)#@T'#@<%#P8!#P0)! 4)#@@%# L$#08%"04.
M#0X,!0\!# $/ 0\*# ()! H+ PH-"P4,"P8. @4""00#" D##0L.!PL%# \%
M" 4"# (&# <"# 8-"@,/"0,. @4" P4) P8##1L7$P$($1 -$ X8#1\7#14(
M"A 6+CL8"AH>$Q at 0'0\=67F^ P'X P  -Q;K at 0M<G^=(S.OW P,!  #I 56+
M[,5O[D]8VQCVZRJ?+A:/OH:  T4(B07W L;_BX8 #+Z&D[Z&G -%"(D%]P+&
MXXN&'.K+_[E\0!Q\U#,?Z)8  $83=)<.CMD B(>[ P  1VK^&WSNR4I")*,#
M   T?0J2<   B4I"-O_H#8H.6/^_ (B''.H! $>#N)B#]87([:(W XJ'0 at R^
MAC"'  ,[PY?K\$'ZBD;\HI)&_#/P5;0O_.LOXH/,L+Z/R #I 8J)_T6#_Y.#
MM1$   #A02T,OH]HAQP#BHD6Y___=P9]Y*(W T>#%F6#,[D\_A!]!MK:ZZ60
MU]V at 0\9.HY"05> JL^.JW)]6,_]AGF^2D \V"S@    #+LZZ3T$'9]@# (K.
M?/U ?&]+?>0   #I*LW^_^F-;V]T^_R)1?3:_NL1D-8BLC,/C9L$.(@-/OL 
M $<+>1A_[#,6#MV4NJIOT4W[58OL@>.JCU@#4U=5LDP#  #;0/^(A\^ _T!(
M#N<P?-D\06Z*    D]5C349T>(@VA8D#Z=X^'_S(^W** P  9 >(#[YQSO^#
M?7$41X+&CXT#@WW-X0N'T0^^CC ,  #!RD#_2$I*9XH#  "(A'=&A!6Y \$/
MOG$I 0  S'0^Q at T&TL'X ZZ&((4X XB'<\#!^.O!_G=YA@,  (LJT/@D <\%
MQ3,/C:C#) 'CP\\SBH1_ at _\(#X/1<,?\,__9HC>3D \V .    !C4\C\_[^+
M#4@#Z0$R!#G,CK,+#XT$!#E'Z#@F]RL\06W;DY"08*@ #[X$1;L# (V,A#?Y
M#30C?.QR0;2,PW+=?A>#O.T$#$7.0'$WNP\ P>$N1CWF"7 S_#/_Z.0JA\+A
M!@Q_.X8Y9 (   'S^6T/P\#!^(L at ."G*:P, BT5+S<!%I_ZH^K\P_^N=4T%S
M80F'..5#  "+2:W6BX9KBPPXKND OX-87E];R2J1D%6+JP 3,%S:2#/VZP0N
M%[C%ABB.@&<#1H/,Q?3P,_9CICB3D(LJ8?G__[\KS]/XS0"(ABA#@_]G20[N
M!WSFS'B]"XM%@(@V&PO;G>E\ ;^4?,T %%N0D)!HP04  .A'@_\@C$DD,_;K
M!"XG&,6&*(Z'J -&@W;%]/ S]F#6&!<XB8;XZ=;_=WGG P  1FK_,'SN='44
M!Y\=7X/_!O9[@\PU0)/XJ '^>>S%!@\VB "QW?__=ANO, _%WP_4\>\0 &O.
M5=_2AU@#  ""QP:*3;8+<GI_C at P Z[]6%KA"@_X"(+<K1>M-VNMP(?_R7F_0
MA^-.GX#5(^>E+'CZ"'CP%7D?'WD5['D+TWD!VWLAK7D;O;"R>/L\>1$.>S >
M>5;J>4ST>6G">6'(>9C6>9.[>:6_>=N'><Z.>?IR>?QV>?8,>AX:>!3+>@#1
M>#VU>B.^>E.">$^,>GN3>G&9>&Y\>F1)>H%/>K at N>K(S>JL >MX&>M7A>N_R
M>1O?>RJI>2.P>R6^><T^#;&>4ZF=Y'QU&W5B6H*?Y'1VYVZ?Y)[:[-':[$,A
M_,5DY#T;V":=Y)QAI!P0B:&? +ZW P  :OE:?@/$K85\_#;S&X/K!P at HES7_
MZX^[7^ .SQ'BAD L! #I-?___T9J=O>Y?)8Q>.LS'NLTD) 3%>?5Q at 8/OFTY
M* 0 1H at F!8QR"GSK at P6HJ_\Y?@-J*?A\!.1^ X/#[XK#B(9<A_X"20YY"WT&
MN)Z'!*[8R3@"C\.(AI at Y&02#^UIZA*,8! "#21^'^SFWE@<  %[<L,Y M[.B
M .20GPV*G^2&V&>!F>OZW>1EGV^!%&OVKJSE+QN!D2H :\<!4,WA3%-F>0")
M1?!KP%GI]D$@=\0":\X&@-M<5F!R>1NRZHI-\(@8LE(# '062P   !:0    
M0?____\6_O___[E\ >;P<NO___^5_Y?7^___%_____]\._<6'0   $'_____
M%O[___^Y? 'T\'*J____1/____] _____Q;^____N'P ^?!RZ____RX<E#GY
M\$%[Q]?[___T)Q8=    ?#S1? 3&\''\____?#SX? 2E\''\____?#SY=#QW
M>>7[__\67@   #EYY?O___]_PN;[____\'KU____7^?[__]=YOO__T?G^___
M%O____^AH*0V/#5BQO\:*F :+V :-& :0& :1V :4F :?&!:OJG[&L-@&NA@
M&O5@&O]@&PQ@&U1@&W]@6YRI_1NA8!NQ8.UNU?___OB at C)J+E)J&_______Y
?H)R-AH^+;_S____WH)J1G(V&CXN=_O___Z]U_?__B_B@
 
end
SHAR_EOF
fi # end of overwriting check
if test -f 'Lpatch'
then
	echo shar: will not over-write existing file "'Lpatch'"
else
cat << \SHAR_EOF > 'Lpatch'
begin 666 Lpatch
M                                                            
M                                                            
M                                        &P     U     !@     
M>                                                           
M                                                            
M                &                                           
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M  ";H[@#^0, 5>YPOPC/UI_/2)^Z]LOUBX2 51-G8 E>G(Y&"";=$=1^#H2#
MBAP7V)O5WHT8#JC,3]D"P_^+#IB?1AMUQ'^.+7B!3MZ*1Q2U)!P W at JXXE<O
MH7/&17"% .AZ(_\8Y'O,N-5=D8:A'XL=B46YJ "1^>^)SGN^&$0CXQCD>\RX
MU5V]AN)%< ^8NT<;Q%V$C3-M 2BRR__><U(./_^:L(Y 3[G<$3/HB'[N TT,
MIO82#A"*'W3: 4]',HNI& -?B(F2A:>#9Y.D0,%\_)LC]6'VYRNQ"7O@?$3"
MN_U6_OW9#PT             !@                                  
M    4                                             !.F^0 K at _Y
MB\([_&?_#0N#5QO_3U[Z?+9P"MB*"LB*#O")'=/;J at 1_ );!RXU!S?P63I+4
M=S6. [!L=,#V4>'\(-?@)@\ .   1@  8.18, %,0X<3B$!:(3K366>)VYL+
M:E4MB$ [@%KCFU'4<$/;$W"TT#/@V]1PS]F;VU(/3[*>8N70.(E?HH44BM[U
M4WQVL]4U40 +<J,IB1SA17W- 6#Z AZ5 EM\30(#PL[2<V+W67R[^ZY'?J X
MBP\M]99[VPGUA]-N=6T)KH2 at AZ.(GPEX;WXQ;._\HWIL'0^ =:54Y+/9 (QS
MV[H*OP"#G;,C6GKV 7U\7H+Q5OQC;D8H.Y3-BR40BK<)>HA_9WK._0BX=I75
M *Y2 0N#(36WB:/* 0  *$Z9RP#BU ?BEDE$I7=!]R^:0<?F>T-4S&]'*'Q#
M*_^*A1=6LWT>#J_3 X+=^&3T]&QU%&+_%QXBH,ZB0!-U5;X**U73^"0!W](#
M\H'"J_L'.FJXO3KS[ZCM @GYV/1KU?1+,RXSYX3W5FS9T_ at D@DR  _*!PJO[
M!SIDN+TZ\^^HPGB ^-Z#8'0,6/R(1J)"X-@>& 2#?GV>>B]UJ'HNAWZXNH!&
M_YO5\0GJ!BZC>]-%N @QXX1:*H+SY at S_L>2M4HT9L45F P &,((8\VWU)M#_
M5(#E-KZ%?@G7]=P+Y\8$"2@&I>-'C48)940+<"%1=V$[^0:+5D5$=T2*#_-\
MK)A3(*%"YMH=< .(A]O'C1AU=%^$8JR&Q %]_P97-I?E +IZE=P8H!C:.0  
MAEG<_D>#_X6X[L7% #?_E-7/N4)]1OXL?*^8I,8"@[$0C5+,?Z" @@T ?;F(
M@[JZ;)E"_JZ]9_HYQYA81CFV'+E2Q;FF'(&'F441J(U#2)N!O6',4B,!I87#
M$A_X^YO&L)ENHE*@W[$GWIT3'"G 18 at +R(+.>,:,3UGX4%G^4UGR65GI7EG1
M*%G5$5G)\Y '6*)A6)9H6HQW6(! 6/A+6,U862DL6RTY61X&4178G0.V  /;
M  /B  O7R<:4^5J-P%B#SUCWV%CKWUC.J5DQAE$K09P"T ("T (!10(!1 (!
M3 (!>0 !20 !50(!-0 !(P ![  !\0 !$  !#@ !-0 !'  !#@(!= (!&@(!
M%  !,P()',O'=3_3Y9QXV",%9*6;9J^;?+>92''!FR]ZF5:16(V= (D  '( 
M ', V_:[Q&.>PPCLH2?TH3"?Q#>9FT7OO5+KHA.=Q%@S;<;B77!TYP=?C.]V
#:V4-
 
end
SHAR_EOF
fi # end of overwriting check
if test -f 'Mpatch'
then
	echo shar: will not over-write existing file "'Mpatch'"
else
cat << \SHAR_EOF > 'Mpatch'
begin 666 Mpatch
M                                                            
M                                                            
M                                        "      (      0     
M?                                                           
M                                                            
M                '                                           
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M  ";HT  :)P'54RF)\](!?^@P -65BNC 6 at X"I at 1V ->!MT1U'X.A(.*'!?8
MF]7>B1GY L/_BPZ8GT8;=<1_ABU\@+EPA!SH>R/^'^11;0CLN7*% >BU)0  
MWPJYY5<- ,/_H9.&H!]$&W9=@MEUS'N_&(LE  #?"KGE5PT P^.AOX;C1;\)
M>Z-\:K$ !MV.* #,?4*$((M L<$'?3+C1X at P]QEEVT\ 1O8  "@         
M  "63KB']^X!76B)@(N?"7CG?D$8=7:790.N\@ SBD;">_Z8^3OJ-7R@;_<7
M Y3>;K%S68MVN H FE=6*__=TRO_$@[8 \:-4D2AC@^?_,\&=T,[:C@&@NG'
MQ8 ( /=VL ]T(_[QZRC-N!6*S;S5=LWD8?P A""&,(:_ at +BC@]!7#9//N,=N
M#>4B 5F*@8O( 4W2AJ"(0(C&>(R53'<%18M$Q'S/3*'QU$>^!O<89'MZ#DZ.
MFTE1U3-K0T(.3XB;23%K6UH.38F;$PEK$%&("VF'40!" ]HYB$ ZQ6+CT#N)
MVCP 0K+=662+VQ(UR=!X   !0ST%2^/;4TTV+M)XBIY\#-^PFEJ at 1X@D22;2
M;C5KT'-B]UE\Z?NO1WY5D=)S8O=9?!T" \*<TG)B]ZR%LH?A1;&G_H#Y..HJ
M?-3W]X;!9&>@)P&9+P"X *  $ ^AB)^Q<!=_;#6UB0WQ1 MZJ'^DJ "J^4K\
MS>#+?781.H 6RX+; ,Q["WUFFXV);'+]HWH#'</% H0PB+<(X6I_;RITE,U#
MB)D '@&9S0 #7T$+_F?_(FN#8-L?BWW6$]\,.[N#7IR( 4>#J!97')C;H^%=
MC=9UKL3_*VSK(H/^%RL!W3D/;OJY0(/5C:\-#_=CH*OZ!SNOU/CWK[ATB89B
M6/!3U&"M1W:/Z'&6_JO[5^;G1O]&A4]<+7S!'*%"_DU#BXW$W2^F$5X(_T:+
M3 at 6S?X!ZHD+^S@?F1O^+U:ST@'MN=H+;?;BZ@#3_G-7Q"##VT6WW 4%F HDM
M<N[__+.@ H.)$-&FC@)6_9X*. :!> 1T@'7?">^N+: W,T#^?"%8(""(3"4R
M0/A\)KO!B;$8   "#@@ WPJY_O8_-H!VA22&H*C=2A9 H(, at F4>#_P;_#4+%
M??QEZL#=W0<61B@$>V719OZXA<3SJ @FD_W#+V[.  !'@]3YK8Y]_O at N=)!U
MX?2%JT)F#L6 N=F! O^N?4!T:'WV>B-Z0@"X]7L_N'I >@0#>.<"BC/X*)P>
MIE^'1A-XXID/_UG+=*+]!,?9F6>QFV6_FW^XFYG$%"+,5-ST>\^!XIH \P  
M@   M@  L@  FP !H@ )^,G+;!R= 9$  :   4( "4#)Q2W961:@6PJN67FR
M47)_G0"2  "?  !W  N=R<8PTEHTV5 at MI5@:KU at 5M5@.OEA]F%AAGEI=:EA(
M;EI'=UBT>UBM2EJ84UJ/7EJ#*UKZ/UC\#EK@&5KD\%LY^ULJQE,@!IP![0 !
M^@ !F  !@P !M@(!D ( >   5@ (K,O'O"I;J#%;K#A9FCQ;GP-;BPI9C^!9
MA>=;Z_-;YO5;VL%;U<93PQF<K-N[Q$&>PW#LH5;VH6>?Q!&;DV0D>O7D?0( 
2"5 at Z'08&$A4-W@  $M5A<GD$
 
end
SHAR_EOF
fi # end of overwriting check
if test -f 'Spatch'
then
	echo shar: will not over-write existing file "'Spatch'"
else
cat << \SHAR_EOF > 'Spatch'
begin 666 Spatch
M                                                            
M                                                            
M                                 !@     ^      $     'P     
M                                                            
M                                                            
M         !P                                                 
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                        FZ-6
M &B<!U5,IB?/2'?_H.%5*O:*T0OL(('8ZUX$W1'4?@Z$@XH<%]B;U=R)&?L"
MP_^+#IB?1AMUQ'^&+WR N7"$'.A[(_X?Y%%M".RY<H4!Z+4E  #?"KGE5PT 
MP_^ADX:@'T0;=EV"V77,>[\8BR4  -\*N>57#0##XZ&_AN-%OPE[HWQJL0 &
MW8XH ,Q]0H0 at BT"QP0=],N-'B##W&67;3P!&]@  *            )9.N(?W
M[@%=:(F BY\)>.=^01AU=I=E Z[R #.*1L)[_ICY.^HU?*!O]Q<#G-YNL7M9
MBP2X"E>^*__=TRO_$@[8 \:/4D2AC ^?_,\&=T,[:C@&@NG'Q8 & /=VO@]T
M(_[QZRC-N!6*S;S5=LWD8?P A""&,(:_ at +BC@]!7#9//N,=N#>4B 5F*@8O(
M 4W2AJ"(0(C&>(R53'<%18M$Q'S/3*'QU$>^!O<89'MZ#DZ.FTE1U3-K0T(.
M3XB;23%K6UH.38F;$PEK$%&("VF'40!" ]HYB$ ZQ6+CT#N)VCP 0K+=662+
MVQ(UR=!X   !0ST%2^/;4TTV+M)XBIY\#-^PFEJ at 1X@D22;2;C5KT'-B]UE\
MZ?NO1WY5D=)S8O=9?!T" \*<TG)B]ZR%LH?A1;&G_H#Y..HJ?-3W]X;!9&>@
M)P&9+P"X *  $ ^AB)^Q<!=_;#6UB0WQ1 MZJ'^DJ "J^4K\S>#+?781.H 6
MRX+; ,Q["WUFFXV);'+]HWH#'</% H0PB+<(X6I_;RITE,U#B)D '@&9S0 #
M7T,+_F?_(FN#8-L?BWW6&]\,.[N#7NR( 1#5U+:Z;G9;BZ/>/1?W&9/\Z\J#
M_A<K =TY#V[ZN4"#U8VO#0_W8Z"K^@<[K]3X]Z^X=(F$8ECR4]1 at K4=VC^AQ
MEOZK^U>4YT9\@@:@J,(.+YR) 'WU@@DZD]Z/#N[_1H5.!;-_@'JB0O[.!^9&
M_XO5K/2 >VYV at MM]N+J -/^<U?$(,/C1;?D!068"B2UR[O_\LZ "@XD0T::.
M E;]G at HX!H%X!'2 ==\)[ZXMH#<S0/Y\(5@@((A,)3) ^'PFN\&)L1@   (.
M" #?"KG^]C\V@':%)(:@J-U*%D"@@R#K1X-\PGB/Q7WG?I&]W3%M/E"X _N!
MCOZXA<3SJ @FD_W%+V[.  !'@]3YK8Y]_O at N=)!UX?2%JT)F#L6 N=F! O^N
M?4!T:'WV>B-Z0@"X]7L_N'I >@0#>.<"BC/X*)P>IE^'1A-XXID/_UG#(*+]
M!,?7F6>'FV6%FW^.FYG.%"+:7 #">X?Y_)H G0  @@  B   D  !=0 !K !!
MZ,F#8A2= 8\  :(  40 043)Q27=60ZD6P*R67&V&6ASG0"T  ")  !I $.5
MR<8TUEHHW5 at AJ5@>LU@)N5@"@EAQG%AF8EI1;EA,<EJ[>UBH?UBA3EJ<5UJ#
M(EJ'+UK^ UCP$EKD'5K8]%L]_ULNRALF&IP!]P !^  !G@ !C0 !L (!E@( 
M=@  4 ! K,O'LBQ;KC-;HCI9F#Y;G05;B0Q9C>)9^^E;Z?5;Y/M;V,-;R\0;
MPQN<W]F[Q#^>PW+LH53VH66?Q ^;VV0D>C3D<0( "5 at Z'08&$A4-W   '-5A
#<GD$
 
end
SHAR_EOF
fi # end of overwriting check
if test -f 'xorit.c'
then
	echo shar: will not over-write existing file "'xorit.c'"
else
cat << \SHAR_EOF > 'xorit.c'
#include <stdio.h>

#define DEC(c)	(((c) - ' ') & 077)

#define xorit(ch) putchar((ch)^getc(orig))


main(argc, argv)
int argc;
char *argv[];
{
    int n;
    FILE *orig;
    char a, b, c, d;

    if (argc<3)
    {
	fprintf(stderr, "Usage: xorit <originalfile> <patchfile>\n");
	exit(-1);
    }

    if ((orig=fopen(argv[1], "r")) == NULL)
    {
	perror(argv[1]);
	exit(1);
    }

    if (freopen(argv[2], "r", stdin) == NULL)
    {
	perror(argv[2]);
	exit(1);
    }

    if (scanf("begin %*o %*s "))
    {
	fputs("xorit: bad uudecode input\n", stderr);
	exit(1);
    }

    while ((n=getchar()) != EOF && (n=DEC(n))!=0)
    {
	while (n>0)
	{
	    a = DEC(getchar());
	    b = DEC(getchar());
	    c = DEC(getchar());
	    d = DEC(getchar());
	    if (n-- > 0) xorit(a << 2 | b >> 4);
	    if (n-- > 0) xorit(b << 4 | c >> 2);
	    if (n-- > 0) xorit(c << 6 | d);
	}
	if ( (n=getchar()) != '\n' )
	{
	    fputs("xorit: bad uudecode input\n", stderr);
	    exit(1);
	}
    }

    exit(0);
}
SHAR_EOF
fi # end of overwriting check

set -e

echo "Extracting the old [SML ]crypt.o from [SML ]libc..."
ar x /lib/Slibcrypt.a Scrypt.o
mv Scrypt.o ORIGScrypt.o

ar x /lib/Mlibcrypt.a Mcrypt.o
mv Mcrypt.o ORIGMcrypt.o

ar x /lib/Llibcrypt.a Lcrypt.o
mv Lcrypt.o ORIGLcrypt.o

ar x /lib/386/Slibcrypt.a crypt.o
mv crypt.o ORIGcrypt.o

echo "Making the patch..."
cc -o xorit xorit.c
./xorit ORIGScrypt.o Spatch > Scrypt.o
./xorit ORIGMcrypt.o Mpatch > Mcrypt.o
./xorit ORIGLcrypt.o Lpatch > Lcrypt.o
./xorit ORIGcrypt.o 386patch > crypt.o

echo "Installing the new [SML ]crypt.o into [SML ]libc..."
ar r /lib/Slibcrypt.a Scrypt.o
mv Scrypt.o NEWScrypt.o
cp ORIGScrypt.o /lib		# Save a copy for future reference

ar r /lib/Mlibcrypt.a Mcrypt.o
mv Mcrypt.o NEWMcrypt.o
cp ORIGMcrypt.o /lib		# Save a copy for future reference

ar r /lib/Llibcrypt.a Lcrypt.o
mv Lcrypt.o NEWLcrypt.o
cp ORIGLcrypt.o /lib		# Save a copy for future reference

ar r /lib/386/Slibcrypt.a crypt.o
mv crypt.o NEWcrypt.o
cp ORIGcrypt.o /lib/386		# Save a copy for future reference

echo "Cleaning up..."
rm xorit xorit.c Spatch Mpatch Lpatch 386patch

echo "All done."

#	End of shell archive
exit 0
-- 
[  Keith   ]  UUCP: {cbosgd, hplabs!hp-sdd, sdcsvax, nosc}!crash!portnoy!ag
[Gabryelski]  INET: ag at portnoy.cts.com      ARPA: crash!portnoy!ag at nosc.mil



More information about the Comp.unix.xenix mailing list