[mod.computers.vax] VAX/VMS V4.4 C Runtime library - new bug

ken@HAMLET.CALTECH.EDU.UUCP (07/04/86)

	The V4.4 VAXCRTL contains a new chdir() call which uses 
SYS$CRELNM to create the logical name SYS$DISK instead of SYS$CRELOG.
Unfortunately, it does this with the LNM$M_CONCEALED bit set in the 
LNM$_ATTRIBUTES. This creates all sorts of misbehavior as the resulting
default directory is apparently illegal.

	Repeat by: set default directory to FOO:[DIR] where FOO is a
rooted directory (i.e. FOO -> DRA0:[xxx.]/TRAN=(CONC,TERM). Create
the directory FOO:[DIR.BAR]. Write a short C program which does a 
chdir("[.bar]"); followed by a lib$spawn(). Compile and run it. From
the subprocess, type "SHOW DEFAULT". Your default directory should be
something like "_FOO:[DIR.BAR]".

	Fix by: The following command file patches all three copies of
the chdir() call in the C runtime libraries so that the LNM$_CONCEALED
attribute is not set. This works for VMS V4.4 only and I recommend
that you put the backup copies of the libraries/images back in place
before installing VMS V4.5.

	DECies: please forward to the appropriate development team;
I probably will not find time to SPR. [I will ignore flames on this
matter.]

-----cut here-----
$ SET DEF SYS$COMMON:[SYSLIB]
$ COPY VAXCRTL.EXE VAXCRTL.EXE-DEC
$ COPY VAXCRTLG.EXE VAXCRTLG.EXE-DEC
$ COPY VAXCRTL.OLB VAXCRTL.OLB-DEC
$ LIBRARY/EXTRACT=C$VAXCIO/OUTPUT=C$VAXCIO.OBJ VAXCRTL.OLB
$ PATCH/ABS C$VAXCIO.OBJ
VERIFY/INST 0AA8
'TSTL    B^0FC(FP)'
'BNEQ    00000AEC'
'MOVL    #00000200,-(SP)'
'CLRQ    -(SP)'
'MOVL    B^04(R2),-(SP)'
'MOVW    #02,-(SP)'
'CVTLW   (R2),-(SP)'
'CLRL    -(SP)'
'PUSHAL  B^14(SP)'
'MOVW    #03,-(SP)'
'MOVW    #04,-(SP)'
'MOVL    SP,R2'
'PUSHAB  W^000008EC'
'PUSHL   #08'
'MOVL    SP,R1'
'PUSHAL  (R2)'
'PUSHL   #00'
'PUSHAQ  (R1)'
'PUSHAQ  W^000008F5'
'PUSHL   #00'
'
EXIT
REPLACE/I 0AAD
'MOVL I^#200,-(SP)'
EXIT
'MOVL I^#0,-(SP)'
EXIT
UPDATE
EXIT
$ LIBRARY VAXCRTL.OLB C$VAXCIO.OBJ
$ DELETE C$VAXCIO.OBJ;*
$ PATCH VAXCRTL.EXE
VERIFY/INST 13F4
'TSTL    B^0FC(FP)'
'BNEQ    00001438'
'MOVL    #00000200,-(SP)'
'CLRQ    -(SP)'
'MOVL    B^04(R2),-(SP)'
'MOVW    #02,-(SP)'
'CVTLW   (R2),-(SP)'
'CLRL    -(SP)'
'PUSHAL  B^14(SP)'
'MOVW    #03,-(SP)'
'MOVW    #04,-(SP)'
'MOVL    SP,R2'
'PUSHAB  W^00001238'
'PUSHL   #08'
'MOVL    SP,R1'
'PUSHAL  (R2)'
'PUSHL   #00'
'PUSHAQ  (R1)'
'PUSHAQ  W^00001241'
'PUSHL   #00'
EXIT
REPLACE/INST 13F9
'MOVL I^#200,-(SP)'
EXIT
'MOVL I^#0,-(SP)'
EXIT
UPDATE
EXIT
$ PATCH VAXCRTLG.EXE
VERIFY/INST 2360
'TSTL    B^0FC(FP)'
'BNEQ    000023A4'
'MOVL    #00000200,-(SP)'
'CLRQ    -(SP)'
'MOVL    B^04(R2),-(SP)'
'MOVW    #02,-(SP)'
'CVTLW   (R2),-(SP)'
'CLRL    -(SP)'
'PUSHAL  B^14(SP)'
'MOVW    #03,-(SP)'
'MOVW    #04,-(SP)'
'MOVL    SP,R2'
'PUSHAB  W^000021A4'
'PUSHL   #08'
'MOVL    SP,R1'
'PUSHAL  (R2)'
'PUSHL   #00'
'PUSHAQ  (R1)'
'PUSHAQ  W^000021AD'
'PUSHL   #00'
EXIT
REPLACE/INST 2365
'MOVL I^#200,-(SP)'
EXIT
'MOVL I^#0,-(SP)'
EXIT
UPDATE
EXIT