Patch Name: PHNE_11568 Patch Description: s700_800 10.20 FTAM9000 E.04.00 cumulative patch Creation Date: 97/07/18 Post Date: 97/07/30 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: FTAM/9000 E.04.00 Filesets: FTAM9000.FTAM,E.04.00 FTAM9000.FTAM_MAN,E.04.00 Automatic Reboot?: No Status: General Superseded Critical: Yes PHNE_11568: CORRUPTION Path Name: /hp-ux_patches/s700_800/10.X/PHNE_11568 Symptoms: PHNE_11568: 1. Incorrect Diagnostic information being returned by FTAM for some PDUs. 2. Encoding of error_observer and error source fields of diagnostics incorrect for some PDUs. 3. ft_connect() does not use the called AE/AP invocation identifiers even when they are explicitly specified. 4. F-CANCEl PDUs are logged twice in the nettl trace file for a single ft_cancel() call. 5. Incorrect diagnostics generated for F-CANCEL response by FTAM. 6. When API tracing is enabled, FTAM logs diagnostics twice for ft_cancel and the first instance is incorrect. 7. When F_READ_ATTRIBUTES is issued without specifying FT_FA_READ_ATTRIBUTE in ft_select(), the diagnostics are displayed incorrectly. 8. ftam_init writes the F_CANCEL_rsp PDU twice in the nettl trace file. 9. Transfer of FTAM-3 document with small string lengths (< 16 bytes) not possible. When nettl trace is enabled only on the initiator machine, an IPC error happens. When nettl is enabled on both machines, the connection is aborted by the responder. 10. ft_sdata call fails with a core dump when API tracing is enabled and when the remote issues a F_CANCEL request. 11. When a F_DELETE is issued without specifying FT_FA_DELETE_FILE in F_SELECT, the diagnostics displayed by ftam_init are incorrect. 12. When ftam_init sends a F-TRANSFER-END request and if the ftam_resp issues a F-CANCEL request before receiving this, then ftam_init hangs. 13. ftam_resp sends the future file size incorrectly as 0 in the F-CREATE-rsp PDU. This should be NULL. 14. ftam_init generates "Lower Layer Failure" error when multiple simultaneous connections are attempted. 15. ftam_resp dumps core when the Calling NSAP is sent as NULL by a remote system. 16. FTAM exits with "IPC Error" with 'get' operations when USE_VFS_LINK is set to no. This happens when transferring files that are more than a few MB in size. 17. Error in Manpages for ft_aereset and ft_aedeactivation 18. fchdoc manpage does not document "Traversal" permitted action. 19. Unresolved symbols in FTAM shared library libmap.sl. 20. Interactive FTAM does not work when LANG=C, due to bad catalog file with PHNE_9722. 21. Interactive ftam with overwrite set to no does not work when LANG is set to ja_JP.SJIS or ja_JP.eucJP. 22. osistat does not work. 23. Error in filesize when transferring files of size less than 11 bytes. PHNE_10091: 1. No error is flagged even if the number of responders forked off exceeds ae_max_inb_assoc. 2. When only T and TM service classes are negotiated, ftam does not give an error 3. When a document type not negotiated is sent, ftam_init does not indicate error 4. ftam handles the Presentation context definition reply list inconsistently 5. errors in fchdoc if LANG is set to C 6. Errors in demo programs 7. The future filesize is displayed incorrectly with "fls" and "ftam". 8. ftam_init hangs when source or destination file is removed during an fcp. 9. pwd command of interactive ftam works only after a "cd" is issued. 10. The first cd in interactive ftam has to be with an absolute path 11. FTAM returns inappropriate error in Service class negotiation. When an initiator issues a request to establish FTAM regime with specifying only TM class, 9k responder gives error message "unsupported service class" instead of "inconsistent service class" which is more appropriate. 12. FTAM hangs when qos is set to FT_CLASS_1_RECOVERY. It was found to transfer some data before hanging. This was observed with the demo program "ftm_llcopy". 13. The "put" function of interactive ftam was not working for large files when ft_qos was set to 2. The process "ftam_init" dumps core. 14. In interactive ftam, "set o y" and "set o n" does not work. Irrespective of y/ n, the overwrite option always toggles. 15. The binary files, FTAM-3 documents with variable string significance could not be transferred with HP FTAM. 16. There was a discrepancy between FTAM Programmer's guide and fchdoc. Also the string significance for FTAM-3 documents could not be set to "variable" using fchdoc. 17. FTAM hangs if remote aborts while reading attributes. Interactive ftam sometimes hangs with get/ put operation. However the file seems to get transferred. 18. If the remote responder accepts only graphic string passwords, ftam cannot connect to such machines. 19. During nettl tracing if ACSE_US entity is enabled, ftam returns with an error "Service Provider unavailable 20. Wrong encoding of AE_QUALIFIER. If the value of the AE qualifier has the MSB set or if it is -ve number, the encoding was wrong 21. FTAM unable to handle strings of length > 2GB 22. FTAM sends future file size as 0, which actually means the filesize cannot grow beyond zero. If future file size is partially supported, then it need not be sent at all. 23. FTAM returns wrong error code when invalid filestore password or an incorrect user name is specified. Defect Description: PHNE_11568: 1. The FTAM code was assigning the fields of the diagnostic information wrongly. 2. There was a bug in the code which resulted in the error source and error_observer fields being set incorrectly. 3. The bit mask that was used by the service provider to identify the fields that have to be processed was incorrectly set. So the Called AE/AP were not being processed even if are explicitly specified. 4. The ft_cancel related code was calling the function to write the PDU into the trace file, twice. 5. There was a bug in the code that was processing the F_CANCEL response and so the diagnostics fields were being set wrongly. 6. There was a bug in the code which was resulting in a wrong pointer being used to de-reference the ft_cancel() diagnostics. This caused multiple instances to be logged. 7. The diagnostics returned from the remote were not processed correctly. So a wrong error code was displayed. 8. The ft_cancel response code was invoking the function to write to the nettl trace file twice. 9. With FTAM-3 documents the character set info is added to each record. The buffer space assigned to hold the PDU data for nettl tracing was not adequate. This is beacuse when the the character set info is added, the size exceeds the space allocated. This was causing IPC error at the init end and core dump at the responder end. 10. In ft_sdata(), the dereferencing of some pointers was incorrect when API tracing is enabled. This was casuing core dumps. 11. The PDU received from the remote systems was not being processed correctly. The diagnostics info was being handled erroneously. 12. There was a bug in the FTAM Responder protocol state machine that was causing this. Actually the ftam_resp should issue an abort after receiving a F-TRANSFER-END, since it has moved out of the data transfer regime after issuing a F-CANCEL request. 13. ftam_resp was wrongly using zero to represent "no value available". It should be a NULL. 14. Since all the connections were using the same P-address, what happens sometimes is, before the first request receives a response, a second request is also sent. This causes OTS to reject the second request. This results in the "Lower Layer failure" error for some connections. 15. ftam_resp was copying from an uninitialised buffer when the Calling NSAP was NULL. This casues memory corruption and core dump. 16. The flow control mechanism to regulate the inbound PDUs was disabled. This caused "IPC error" at the ftam_init end. 17. The Ae_label variable used in these APIs was wrongly shown as a pointer in the manpages. 18. Although the permitted action "traversal" is supported, the manpages of fchdoc does not document this. 19. Some of the functions not accessible to the user had unresolved symbols. Certain files used in the creation of the archive library were not being used while creating the shared library. 20. The updated catalog file was not sent in PHNE_9722. 21. Interactive ftam was using the obsoleted YESSTR and NOSTR for processing the overwrite option set in the .ftamrc file. These were not working when LANG is set to ja_JP.SJIS or ja_JP.eucJP. 22. osistat was using the 9.x pathname for the location of hp-ux. This has been corrected. 23. FTAM code was incorreclty using ftruncate() instead of ftruncate64(). In 10.20 since large files are supported, the filesize is stored in 64 bits. So ftruncate64() should be used. PHNE_10091: 1. The logic to keep track of the number of responders forked off was not existing. This has now been added. 2. There was a bug in the code that was checking the permitted combinations of service classes. So ftam_init was allowing T and TM to be negotiated. 3. In ftam_init, the logic to check the document type negotiated against the document that the user was trying to send was not present. For instance, if INTAP-1 was not negotiated and the user tries sending it, no error was being indicated. 4. In CPA PPDU, the NBS-OLD Abstract syntax was being shown as user reject. It should be indicated as provider reject. In CPR PPDU, the same abstract syntax was being accepted. 5. fchdoc was giving errors if LANG=C was set. 6. The source and destination parameters were interchanged in the demo programs. 7. There was a bug in the initialization of the bit mask which was being used to check the attributes to be printed. Also the future filesize field was being wrongly initialized to -2 instead of 0 in some cases. 8. The state machine part of the code had some bugs. When the destination file was removed in a particular state of "ftam_resp", it was taking a wrong action and state transfer finally resulting in a deadlock condition. 9. A local variable was being maintained to track the working directory on the remote side (for the "pwd" command of interactive ftam). Since it was initialized to empty string ( "" ) at connection/ login, pwd without a "cd" issued before it was giving an error. 10. In interactive ftam, a cd without any arguments gives an error. Also the first cd issued should be with some absolute path. This was because a local variable was maintained to track the working directory on the remote side and was initialised to null string. 11. The error checking part of the service class negotiation code was wrong. It doesnot differentiate between the two conditions "unsupported" and "inconsistent". 12. ftm_llcopy doesnot work if qos > 0. While receiving the requested data through ft_rdata(), the destination connection id is not specified in the user process. This causes a problem because in ftam_init, the destination qos is extracted using the dest_cid. Also at the ftam_init end, when the checkpoint window is found to be full,the initiator process does not send any indication of this to the user process, instead goes into a wait state (waiting for a new request). The user process on the other end keeps waiting for the requested data. Hence a new API ft_rdataqos() is added and some changes are done in the SPP. 13. Memory corruption occurs in the part of the code that deals with qos > 0. The freed memory was used resulting in core dump. The flow control part of the code was not working properly. 14. In interactive ftam, there was a bug in the part of the code that handles the parameter to the "set o" option. Due to this the user specified input (either 'y' or 'n') was being ignored. 15. The variable string significant FTAM-3 documents were not supported by HP FTAM. But as per the standards, the string significance can be anything. 16. Though the programmer's guide says that only "no" significance is supported for FTAM-3 documents, fchdoc accepts "fixed" significance as well. Also the standards say that FTAM-3 document can be of any type ( no/ fixed/ variable significance). 17. After the file was transferred, the attributes of the file were read. If an abort comes from the remote at this point, FTAM hangs. This part of the code has memory corruption/ initialization problem. 18. FTAM did not have a provision to encode and send the passwords as graphic strings. This is required if FTAM has to be conformant to ENV-41204 and ISP-AFT11. 19. With ACSE_US entity enabled for nettl tracing, some memory corruption was happening which resulted in ftam_init getting killed and ftam returning errror message. 20. AE Qualifiers whose MSB is set or whose value is -ve were not encoded properly. 21. The string lengths were being received and stored as signed intergers. So the maximum string length that could be handled was only 2GB 22. FTAM was sending the future file size as 0, which actually means the filesize cannot grow beyond zero. If futurefile size is partially supported, then it need not be sent at all. 23. The error codes returned when an invalid filestore or an incorrect filename was specified were wrong. SR: 1653208843 1653209197 1653209536 1653210856 1653210872 1653211326 1653212480 1653212597 1653212837 1653212829 1653212811 1652212779 5003371880 1653210120 1653214049 4701348300 4701348318 1653198234 1653199034 1653204503 1653204511 1653211516 1653222372 4701343566 1653197913 1653194365 1653193524 1653193904 1653194753 1653197111 1653186387 1653177311 1653179556 1653174490 1653163337 1653186379 1653178269 1653185637 1653188383 4701328997 1653178848 1653192740 1653190934 1653193300 1653191213 Patch Files: /opt/ftam/lbin/ftam_init /opt/ftam/lbin/ftam_resp /opt/ftam/lib/libmapftam.a /opt/ftam/shlib/libmapftam.sl /etc/opt/ftam/conf/ftam_pw /opt/ftam/man/man1.Z/fchdoc.1 /opt/ftam/man/man1.Z/ftam.1 /opt/ftam/man/man3.Z/ft_rdata.3n /opt/ftam/man/man3.Z/ft_rdataqos.3n /opt/ftam/shlib/libmap.sl /opt/ftam/lib/libmap.a /opt/ftam/bin/ftam /opt/ftam/bin/fchdoc /opt/ftam/lib/nls/C/fchdoc.cat /opt/ftam/demos/ftm_parm.c /opt/ftam/lib/nls/C/ftam_cmds.cat /opt/ftam/lib/nls/C/ftamfmt.cat /opt/ftam/lib/nls/C/mapftam.cat /opt/ftam/man/man3.Z/ft_aereset.3n /opt/ftam/man/man3.Z/ft_aedeacti.3n /opt/ftam/sbin/osistat /opt/ftam/lib/nls/C/osistat.cat what(1) Output: /opt/ftam/lbin/ftam_init: FTAM: E.04.00 PHNE_11568 97/07/22 s800 ftam_init /opt/ftam/lbin/ftam_resp: FTAM: E.04.00 PHNE_11568 97/07/22 s800 ftam_resp /opt/ftam/lib/libmapftam.a: FTAM: E.04.00 PHNE_11568 97/07/22 s800 libmapftam.a /opt/ftam/shlib/libmapftam.sl: FTAM: E.04.00 PHNE_11568 97/07/22 s800 libmapftam.s l /etc/opt/ftam/conf/ftam_pw: FTAM Passwd Config file /opt/ftam/man/man1.Z/fchdoc.1: None /opt/ftam/man/man1.Z/ftam.1: None /opt/ftam/man/man3.Z/ft_rdata.3n: None /opt/ftam/man/man3.Z/ft_rdataqos.3n: None /opt/ftam/shlib/libmap.sl: FTAM: E.04.00 PHNE_11568 97/07/22 s800 libmap.sl /opt/ftam/lib/libmap.a: FTAM: E.04.00 PHNE_11568 97/07/22 s800 libmap.a /opt/ftam/bin/ftam: FTAM: E.04.00 PHNE_11568 97/07/22 s800 ftam FTAM: E.04.00 PHNE_11568 97/07/22 s800 libmapftam.a /opt/ftam/bin/fchdoc: FTAM: E.04.00 PHNE_11568 97/07/22 s800 fchdoc /opt/ftam/lib/nls/C/fchdoc.cat: FTAM: E.04.00 PHNE_11568 97/07/22 s800 ftam change d ocument catalog /opt/ftam/demos/ftm_parm.c: FTAM: ftm_parm.c $Revision: 9.3 $ $Date: 94/11/18 11 :24:37 $ /opt/ftam/lib/nls/C/ftam_cmds.cat: FTAM: E.04.00 PHNE_11568 97/07/22 s800 ftam command NLS catalog /opt/ftam/lib/nls/C/ftamfmt.cat: FTAM: E.04.00 PHNE_11568 97/07/22 s800 FTAM format c atalog /opt/ftam/lib/nls/C/mapftam.cat: FTAM: E.04.00 PHNE_11568 97/07/22 s800 FTAM ft_gperr or() catalog /opt/ftam/man/man3.Z/ft_aereset.3n: None /opt/ftam/man/man3.Z/ft_aedeacti.3n: None /opt/ftam/sbin/osistat: FTAM: E.04.00 PHNE_11568 97/07/22 s800 osistat OTS: C.07.00 mbuf.c 5.3 (Berkeley) 2/3/87 /opt/ftam/lib/nls/C/osistat.cat: None cksum(1) Output: 1708567701 1185633 /opt/ftam/lbin/ftam_init 1168600825 1070634 /opt/ftam/lbin/ftam_resp 2860177849 475734 /opt/ftam/lib/libmapftam.a 2919230831 633211 /opt/ftam/shlib/libmapftam.sl 803747064 2141 /etc/opt/ftam/conf/ftam_pw 1635752870 3898 /opt/ftam/man/man1.Z/fchdoc.1 4237591471 6460 /opt/ftam/man/man1.Z/ftam.1 3107377653 2546 /opt/ftam/man/man3.Z/ft_rdata.3n 2078762775 2800 /opt/ftam/man/man3.Z/ft_rdataqos.3n 4112851785 480882 /opt/ftam/shlib/libmap.sl 1506767914 325328 /opt/ftam/lib/libmap.a 1692057355 642029 /opt/ftam/bin/ftam 760166082 49349 /opt/ftam/bin/fchdoc 3131825844 5836 /opt/ftam/lib/nls/C/fchdoc.cat 3669152946 45271 /opt/ftam/demos/ftm_parm.c 2413455477 26883 /opt/ftam/lib/nls/C/ftam_cmds.cat 1847333175 163903 /opt/ftam/lib/nls/C/ftamfmt.cat 1445776019 93 /opt/ftam/lib/nls/C/mapftam.cat 3887749338 1990 /opt/ftam/man/man3.Z/ft_aereset.3n 2132714984 1987 /opt/ftam/man/man3.Z/ft_aedeacti.3n 3779208936 41205 /opt/ftam/sbin/osistat 1472828038 4359 /opt/ftam/lib/nls/C/osistat.cat Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_10091 Equivalent Patches: None Patch Package Size: 5130 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_11568 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_11568.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHNE_11568.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_11568. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHNE_11568.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_11568.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None