Patch Name: PHNE_11872 Patch Description: s700_800 10.10 FTAM9000 E.03.0[01] cumulative patch Creation Date: 97/07/30 Post Date: 97/08/06 Hardware Platforms - OS Releases: s700: 10.10 s800: 10.10 Products: FTAM/9000 E.03.00 E.03.01 Filesets: FTAM9000.FTAM,E.03.00,E.03.01 FTAM9000.FTAM_MAN,E.03.00,E.03.01 Automatic Reboot?: No Status: General Superseded Critical: No (superseded patches were critical) PHNE_11334: CORRUPTION PHNE_8087: MEMORY_LEAK PHNE_6945: OTHER ftam_resp with -api option was not working for customer due to which customer was unable to use ftam responder. Path Name: /hp-ux_patches/s700_800/10.X/PHNE_11872 Symptoms: PHNE_11872: 1. When ft_create() specifies REPLACE or EXTEND only as the permitted actions, create fails. 2. FTAM changes the value of the string length when the files are transferred. 3. Enhancement request to make default document type used by ftam, configurable. 4. Incorrect error message is displayed when the attribute values passed to ft_select/ft_open are inconsistent with the actual document type. 5. Error source is set to an incorrect value for some error-id's returned by the responder. PHNE_11334: 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. PHNE_9722: 1. No error is flagged even if the number of responders forked off exceeds ae_max_inb_assoc. 2. When 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 PHNE_9221: 1. The future filesize is displayed incorrectly with "fls" and "ftam". 2. ftam_init hangs when source or destination file is removed during an fcp. 3. pwd command of interactive ftam works only after a "cd" is issued. 4. The first cd in interactive ftam has to be with an absolute path 5. 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. 6. 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". 7. 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. 8. In interactive ftam, "set o y" and "set o n" does not work. Irrespective of y/ n, the overwrite option always toggles. 9. The binary files, FTAM-3 documents with variable string significance could not be transferred with HP FTAM. 10. 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. 11. FTAM hangs if remote aborts while reading attributes. Interactive ftam sometimes hangs with get/ put operation. However the file seems to get transferred. PHNE_8263: 1. If the remote responder accepts only graphic string passwords, ftam cannot connect to such machines. 2. During nettl tracing if ACSE_US entity is enabled, ftam returns with an error "Service Provider unavailable". PHNE_8087: 1. Time varying and machine dependent memory leak with the interactive ftam get operation, fcp and high level copy. 2. Memory leak with low level copy operations. 3. 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. PHNE_6945: 1. FTAM responder with api option does not work properly in E.03.00 2. Demo program ftm_connect does not work from E.03.00 ftam initiator to D.02.02.03 ftam responder Defect Description: PHNE_11872: 1. Mapping of ftam read and write actions to their equivalent UNIX file operations were incorrect. 2. When a file is transferred with string-length equal to zero, there is a discrepency between the string length value present in the source and destination attribute files and the string length value on the request and response PDUs. When the string length is set to zero, FTAM was internally assuming certain default values and using these for the transfer. 3. FTAM has been enchanced so that the default document type assumed is configurable. The user can now specify the default type to be used in the ftam configuration file (/etc/opt/ftam/conf/ftam_conf). The document parameters can be specified in this file. In the absence of these parameters or if they are set to invalid values, FTAM continues to assume the default document type as FTAM-1. The user is allowed to set only the following 4 parameters: Document type (Mandatory), String type (optional), Maximum string length (optional), String significance (optional). The default value for the permitted actions is set depending on the document type and the user is not allowed to set the permitted actions in the configuration file. This enhancement will be available for all modes of FTAM: Interactive, Commandline and Application Programmatic Interface.The configuration file if present is also used by fchdoc in the display mode. If the shadow file is not present and if the ftam_conf contains the default document type, then fchdoc displays this. An additional message is also added to indicate that the attributes are being read out of the ftam_conf file. 4. There was a bug in the code which resulted in incorrect handling of situations where the string length of the document and the parameters specified by the remote system are different. So the correct error message was not being displayed. 5. There was a bug in the code that was adding the error_ source to the diagnostics PDU. PHNE_11334: 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.SJISor ja_JP.eucJP. PHNE_9722: 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. PHNE_9221: 1. 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. 2. 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. 3. 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. 4. 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. 5. The error checking part of the service class negotiation code was wrong. It doesnot differentiate between the two conditions "unsupported" and "inconsistent". 6. 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. 7. 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. 8. 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. 9. The variable string significant FTAM-3 documents were not supported by HP FTAM. But as per the standards, the string significance can be anything. 10. 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). 11. 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. PHNE_8263: 1. 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. 2. 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. PHNE_8087: 1. In FTAM for 10.01 version, the encoded PDUs are sent to a stream. If the stream is full, the PDUs are put in a queue and written to the stream later. Under this condition some memory allocated to the enqueued PDUs was not being released. This problem happens when the source machine has higher throughput than the destination machine or when the destination machine is heavily loaded. 2. In the case of low level copy the PDUs received from a remote responder are decoded and queued up by the SPP and sent to the UP later. The flow control mechnaism which was regulating the number of pdus queued up had a bug. This bug resulted in the pdus simply piling up at the SPP. 3. AE Qualifiers whose MSB is set or whose value is -ve were not encoded properly. PHNE_6945: 1. The data structures required for interprocess communication between ftam responder and the user process were not initialized. This resulted in failure of "ftam_resp -api". When the data structures were initialized properly, the problem was solved 2. The called and calling qualifier field in AARQ(Association Request) PDU of ACSE was not coded properly by ftam_init. The ftam responder on the other side treated it as error and aborted the connection SR: 1653211722 1653211663 1653212027 1653223784 1653206110 1653208843 1653209197 1653209536 1653210856 1653210872 1653211326 1653212480 1653212597 1653212837 1653212829 1653212811 1652212779 5003371880 1653210120 1653214049 4701348300 4701348318 1653198234 1653199034 1653204503 1653204511 1653194365 1653193524 1653193904 1653194753 1653197111 1653186387 1653177311 1653179556 1653165423 1653171975 1653174490 1653163337 1653154880 1653154203 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 /etc/opt/ftam/conf/ftam_conf /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 what(1) Output: /opt/ftam/lbin/ftam_init: FTAM: E.03.01 PHNE_11872 97/08/04 s800 ftam_init /opt/ftam/lbin/ftam_resp: FTAM: E.03.01 PHNE_11872 97/08/04 s800 ftam_resp /opt/ftam/lib/libmapftam.a: FTAM: E.03.01 PHNE_11872 97/08/04 s800 libmapftam. a /opt/ftam/shlib/libmapftam.sl: FTAM: E.03.01 PHNE_11872 97/08/04 s800 libmapftam. sl /etc/opt/ftam/conf/ftam_pw: FTAM Passwd Config file /etc/opt/ftam/conf/ftam_conf: FTAM Configuration 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.03.01 PHNE_11872 97/08/04 s800 libmap.sl /opt/ftam/lib/libmap.a: FTAM: E.03.01 PHNE_11872 97/08/04 s800 libmap.a /opt/ftam/bin/ftam: FTAM: E.03.01 PHNE_11872 97/08/04 s800 ftam FTAM: E.03.01 PHNE_11872 97/08/04 s800 libmapftam. a /opt/ftam/bin/fchdoc: FTAM: E.03.01 PHNE_11872 97/08/04 s800 fchdoc /opt/ftam/lib/nls/C/fchdoc.cat: FTAM: E.03.01 PHNE_11872 97/08/04 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.03.01 PHNE_11872 97/08/04 s800 ftam command NLS catalog /opt/ftam/lib/nls/C/ftamfmt.cat: FTAM: E.03.01 PHNE_11872 97/08/04 s800 FTAM format c atalog /opt/ftam/lib/nls/C/mapftam.cat: FTAM: E.03.01 PHNE_11872 97/08/04 s800 FTAM ft_gperr or() catalog /opt/ftam/man/man3.Z/ft_aereset.3n: None /opt/ftam/man/man3.Z/ft_aedeacti.3n: None cksum(1) Output: 1776821522 1085968 /opt/ftam/lbin/ftam_init 800425349 979376 /opt/ftam/lbin/ftam_resp 1795899063 372478 /opt/ftam/lib/libmapftam.a 3990839687 580788 /opt/ftam/shlib/libmapftam.sl 803747064 2141 /etc/opt/ftam/conf/ftam_pw 260625181 2677 /etc/opt/ftam/conf/ftam_conf 1635752870 3898 /opt/ftam/man/man1.Z/fchdoc.1 3004680202 6616 /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 3348034194 430904 /opt/ftam/shlib/libmap.sl 420167619 408212 /opt/ftam/lib/libmap.a 659203094 576316 /opt/ftam/bin/ftam 991039128 53377 /opt/ftam/bin/fchdoc 1402308033 6043 /opt/ftam/lib/nls/C/fchdoc.cat 654253372 45246 /opt/ftam/demos/ftm_parm.c 1835452090 26971 /opt/ftam/lib/nls/C/ftam_cmds.cat 2583720945 163903 /opt/ftam/lib/nls/C/ftamfmt.cat 1392565322 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 Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_6945 PHNE_8087 PHNE_8263 PHNE_9221 PHNE_9722 PHNE_11334 Equivalent Patches: None Patch Package Size: 4720 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_11872 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_11872.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_11872.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_11872. 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_11872.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_11872.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None