Path: utzoo!mnetor!uunet!husc6!think!ames!ucsd!sdcsvax!ucsdhub!jack!portnoy!ag From: ag@portnoy.CTS.COM (Keith Gabryelski) Newsgroups: comp.unix.xenix Subject: 386 crypt fix. (fix for fix) Message-ID: <114@portnoy.CTS.COM> Date: 4 Apr 88 21:11:57 GMT Reply-To: ag@portnoy.CTS.COM (Keith Gabryelski) Organization: The Meadow Party, San Diego, CA Lines: 426 Summary: Here is the real fix. I apologize to those who tried the 386 crypt fix and found it to be lacking the 286 S/M/L model fixes. I have fixed those patches in this re-release. Thank you Mr. Gilbrech (skip@pwcmrd) for cluing me in on the problems. An explanation should go along with this shar patch. This shar patch will, providing you have permission, replace the crypt.o files from the archives in /lib/?libcrypt.a and /lib/386/Slibcrypt.a with the patched files that are included in this archive. You should only need to type "sh < cryptfix.shar" for the fixes to be installed. (You should be root when invoking this script.) If your system does not have the crypt libraries in /lib/?libcrypt.a (and /lib/386/Slibcrypt.a) then you will have to edit this shar file to do the right thing. If you have a problems, feel feel to drop me a line at the address below. I called SCO on Friday (April 1 no less) and a gave the necessary patch information to a tech named Dave (pressures on Dave). I suppose these fixes will be distributed once SCO is assured my source patch didn't break anything. --- --- [ Keith ] UUCP: {cbosgd, hplabs!hp-sdd, sdcsvax, nosc}!crash!portnoy!ag [Gabryelski] INET: ag@portnoy.cts.com ARPA: crash!portnoy!ag@nosc.mil #! /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@8 H:!"%6&AN"X !D(#%1T: M!55:"Q$=#%!'# L!0%H;!14514 %%15$1@P!'0=06QT1 %!!$0!LII )J3-5 M! #!P4/P) )J>%3 P % P=?SY )J:D ' :G/Y )J<-N! ( 0@TKY(( M OW\_/O[_53+D T P(# ,"!T1!1$2^,Z0H"E4 /@(1!@$&%@%E!E@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@8"#@( M& @_"!@(&P@8"#@(& @Y"!@(. @8"#L(& @X"!@(&0@8" 4 P P, M ,/'QH3&00&'Q,)$Q\=!!\('A(8%QP/&0\K'2LZ"A@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@.!PX+"@,- P8/ PL#"@T.!P@+ @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@+ 0$Q@0'0\=67F^ P'X P -Q;K@0M[ P 1VK^&WSNR4I")*,# M T?0J2< B4I"-O_H#8H.6/^_ (B''.H! $>#N)B#]87([:(W XJ'0@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@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(@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@T&TL'X ZZ&((4X XB'<\#!^.O!_G=YA@, (LJT/@D <\% MQ3,/C:C#) 'CP\\SBH1_@_\(#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@."G*:P, BT5+SE\ ;^4?,T %%N0D)!HP04 .A'@_\@C$DD,_;K M!"XG&,6&*(Z'J -&@W;%]/ S]F#6&!>S%!@\VB "QW?__=ANO, _%WP_4\>\0 &O. M5=_2AU@# ""QP:*3;8+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'>?IR>?QV>?8,>AX:>!3+>@#1 M>#VU>B.^>E.">$^,>GN3>G&9>&Y\>F1)>H%/>K@N>K(S>JL >MX&>M7A>N_R M>1O?>RJI>2.P>R6^>4ZF=Y'QU&W5B6H*?Y'1VYVZ?Y)[:[-':[$,A M_,5DY#T;V":=Y)QAI!P0B:&? +ZW P :OE:?@/$K85\_#;S&X/K!P@HES7_ MZX^[7^ .SQ'BAD L! #I-?___T9J=O>Y?)8Q>.LS'NLTD) 3%>?5Q@8/OFTY M* 0 1H@F!8QR"GSK@P6HJ_\Y?@-J*?A\!.1^ X/#[XK#B(9!F>OZW>1EGV^!%&OVKJSE+QN!D2H :\0") M1?!KP%GI]D$@=\0":\X&@-M<5F!R>1NRZHI-\(@8LE(# '062P !:0 M0?____\6_O___[E\ >;P>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@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@JXXE^)SGN^&$0CXQCD>\RX MU5V]AN)%< ^8NT<;Q%V$C3-M 2BRR__>#9Y.D0,%\_)LC]6'VYRNQ"7O@?$3" MN_U6_OW9#PT !@ M 4 !.F^0 K@_Y MB\([_&?_#0N#5QO_3U[Z?+9P"MB*"LB*#O")'=/;J@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 +HA_9WK._0BX=I75 M *Y2 0N#(36WB:/* 0 *$Z9RP#BU ?BEDE$I7=!]R^:0T-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_@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@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@+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@X"I@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@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""&,(:_@+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@1X@D22;2 M;C5KT'-B]UE\Z?NO1WY5D=)S8O=9?!T" \*@)P&9+P"X * $ ^AB)^Q#+?781.H 6RX+; ,Q["WUFFXV);'+]HWH#'#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@6S?X!ZHD+^S@?F1O^+U:ST@'MN=H+;?;BZ@#3_G-7Q"##VT6WW 4%F HDM M 1T@'7?">^N+: W,T#^?"%8(""(3"4R M0/A\)KO!B;$8 "#@@ WPJY_O8_-H!VA22&H*C=2A9 H(,@F4>#_P;_#4+% M??QEZL#=W0<61B@$>V719OZXA<3SJ @FD_W#+V[. !'@]3YK8Y]_O@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@MI5@:KU@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<93PQFPW#LH5;VH6>?Q!&;DV0D>O7D?0( 2"5@Z'08&$A4-W@ $M5A '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[\8BR4 -\*N>57#0##XZ&_AN-%OPE[HWQJL0 & MW8XH ,Q]0H0@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""&,(:_@+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@1X@D22;2;C5KT'-B]UE\ MZ?NO1WY5D=)S8O=9?!T" \*@ M)P&9+P"X * $ ^AB)^Q#+?781.H 6 MRX+; ,Q["WUFFXV);'+]HWH#'/1?W&9/\Z\J# M_A4YT9\@@:@J,(.+YR) 'WU@@DZD]Z/#N[_1H5.!;-_@'JB0O[.!^9& M_XO5K/2 >VYV@MM]N+J -/^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@AJ5@>LU@)N5@"@EAQG%AF8EI1;EA,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; MPQNPW+LH53VH66?Q ^;VV0D>C3D<0( "5@Z'08&$A4-W '-5A # 'xorit.c' #include #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 \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@portnoy.cts.com ARPA: crash!portnoy!ag@nosc.mil