Patch-ID# 100452-74
Keywords: security sel selection mailtool slow messages KP_Insert
Synopsis: OpenWindows 3.0: XView 3.0 Patch
Date: Jul/15/98

Solaris Release: 1.0 1.0.1 1.1 1.1.1A 1.1.2

SunOS Release: 4.1 4.1.1 4.1.2 4.1.3 4.1.3_U1A 4.1.4
 
Unbundled Product: OpenWindows
 
Unbundled Release: 3.0
 
Topic: XView 3.0 Patch Release
 
BugId's fixed with this patch: 1066919 1072832 1073167 1066366 1075863 1075950 1059597 1080579 1075124 1073246 1065873 1084865 1083436 1083405 1053515 1078467 1061299 1076560 1037992 1078467 1044411 1055172 1068828 1077164 1091601 1093039 1049703 1087337 1074553 1053036 1053292 1030878 1020408 1097384 1076907 1043723 1101846 1103579 1105512 1106032 1098466 1106525 1093908 1067716 1109382 1108767 1113021 1110227 1109875 1114662 1111308 1114561 1065350 1067367 1115954 1053622 1109875 1122244 1122239 1122353 1072252 1117789 1071584 1124324 1066669 1098379 1131411 1129722 1140264 1134887 1140806 1136974 1139167 1142387 1047558 1140250 1142387 1148561 1148724 1110936 1149528 1148277 1145729 1161640 1160672 1161637 1161924 1164206 1164512 1137807 1165614 1161700 1171812 1173869 1085336 1079507 1209456 1256462 4008132

Changes incorporated in this version: 4008132

Relevant Architecture: sparc
    NOTE: sun4(all)

Patches which may conflict with this patch:

Obsoleted by:

Files included with this patch:
sun4/libxview.a
sun4/libxview.sa.3.74
sun4/libxview.so.3.74
sun4/libxview_p.a
sun4/scrollbar.h
sun4/xv_version.h

NOTE:
     preceded by ucb 4.1.3 /bin/sum :

	02533  1759 sun4/libxview.a
	28669    58 sun4/libxview.sa.3.74
	14847  1344 sun4/libxview.so.3.74
	17965  1894 sun4/libxview_p.a
	62911     4 sun4/scrollbar.h
	26735     2 sun4/xv_version.h

Problem Description:

	This patched fixes the list of bugs referenced below.

1072832 App may hang server if notify proc takes a long time
1073167 Pressing help in scrollbar can core dump xview applications
1066366 Typing ^B when cursor at top of text window goes into infinite scroll
	loop	
1075863 XView doesn't display menus when the # of items reaches limit of 1
	column
1075950 V3 slow to start/exit an app as compared to V2
1059597 check box choices don't display the correct color until refreshed
1080579 OW3.0 cmdtool doesn't echo characters if raw mode selected
1075124 Textsw line spacing doesn't meet TUV requirements
1073246 Panel text items send a delete request after only receiving a filename
1065873 PANEL_VALUE_DISPLAY_LENGTH in text item does not work for values less
	than 4
1084865 MENU_NROWS doesn't clamp menu to specified number of rows
1083436 menu_show:  Menu too large for screen
1083405	xv_destroy frame memory leak
1053515 Memory leak in PANEL_CHOICE items
1078467	xview3.0 (SCROLLABLE_PANEL,PANEL) program runs much slower than xview2.0
1061299	Textsw leaks memory after textsw_reset()
1076560 added attribute SCROLLBAR_PERCENT_OF_DRAG_REPAINTS to be OL Level 2
	compliant with scrollbar dragging 
1037992	Suspending a cmdtool with control-Z kills it
1078467	xview3.0 (SCROLLABLE_PANEL,PANEL) program runs much slower than xview2.01089473	panel item redraw on scrollable panel is slow
1044411 Text Subwindow does not paint color correctly
1055172 textsw doesn't work with LARGE files
1068828 cmdtool leaks memory when continuously displaying data
1077164 cmdtool L2/AGAIN key displays unechoed characters
1091601 cmdtool feature has potential for revealing passwords
1093039 XView patch 100452-10 breaks textsw package
1049703 "META" character is not recognized in shelltool & cmdtool
1087337 Textsw leaks memory after textsw_reset()
1074553 selection service cut/paste drag/drop is glacial
1053036 xv_set(textsw, XV_FONT, xvfont, NULL) doesn't work anymore
1053292 shelltool doesn't report correct screen size
1030878 carriage return gets turned into a linefeed in a TERMSW
1020408 caret turds when changing modes from non-scrolling to scrolling in cmdtool
1097384 Popup menus don't work when frame in xv_window_loop mode
1076907 destroying command frame leaks memory
1043723 underline does not work in shelltool
1101846 WIN_BORDER causes window to be created whose width or height can be -1
1066919 cmdtool/tip exits when ctl-C sent to tip
1103579 A combination of help / F1 and owplaces can crash the shelltool
1105512 menus hang after ACTION_ADJUST
1106032 Pinned find causes segv when parent destroyed
1098466 Patch 100452-12 or earlier causes menus to display horizontally
1106525 Xview3.0 keypad doesn't behave as documented
1093908 Exclusive scrolling-list does not work fine if it is sorted with PANEL_LIST_SORT
1067716 mailtool & filemgr dumps core in selection code (losing ownership)
1109382 notices cannot be confirmed with RETURN
1108767 Arrow keys no longer traverse panels
1112589 PgUp and PgDn doesn't work on type-5 center keypad
1113021 textsw on dual headed display dies with BadMatch
1110227 xview patch 100452-20 breaks debug malloc 
1109875 SHIFT key does not reverse NUM_LOCK on right keypad
1114662 Up and Down cursor keys don't work in textsw
1111308 Application doesn't run after installing patch 100452-02
1114561	xv_destroy on a server object dumps core
1065350 notifier occasionally fails to deliver itimer events
1067367 Numeric text fields in panel have a bad value when left blank
1115954 xview patch 100452-25 alters the behavior of program, if "-Wx large" option used
1053622 PANEL_CLIENT_DATA wrong in PANEL_NUMERIC_TEXT event proc
1109875 SHIFT key does not reverse NUMLOCK
1122244 textedit -read_only goes into infinite loop
1122239 textedit core dumps when dropping a compressed file
1122353 textedit will hang when selecting and copying more than one page of text.  
1072252 textedit core dump because of simple operation in a split window!
1117789 Patch 100452-28 causes recurrence of bug: 1106032
1071584 Panel scrolling list doesn't scroll when using xv_window_loop() function call.
1124324 dbx warning message after loading patch id 100452-35 (xview CTE patch)
1066669	Vi and Cmdtool do not redraw wide window correctly. 
1098379	BadValue when creating multiline text field on weird size control area 
1131411	setting PANEL_LIST_WIDTH is very slow when dealing with long list items 
1129722	SERVER_EXTERNAL_XEVENT_PROC only works for root window
1140264	AGAIN key with 100452-25 to -44  broke supports for multiple-action usages
1134887	PANEL_VALUE_STORED_LENGTH not compatible with OW-2.0
1140806	textsw and ttysw leak memory
1136974	paste/find gets confused and uses stale value
1139167	rev 15 to 47 of XView 3.0 patch 100452 can overwrite memory on rare occasions
1142387 rev 38 of XView 3.0 patch 100452 does not allow for programmatic insertions into a textsw
1047558 App dumps if mouseless is on, and current object is destroyed
1140250 xv_destroy() on top level menu with pullright submenus can cause SEGV
1142387 SunNet Manager browser does not display log data on OW3_U1
1148561 Scrolling in cmdtool jumps with very long lines
1148724 Destroying an active menu in stay-up mode causes core dump.
1110936 Single character text fields do not work when wide characters are inserted
1149528 XView patch 100452-51 breaks SunNet Manager.
1148277 Backspace/Delete leaves half care image behind.
1145729 Copy/Paste frequently fails in OpenWindows 3.3.
1161640 MENU_VALUE is set to other than an XView object can cause core dump
1160672 shelltool doesn't report correct screen size
1161637 Destroying read only PANEL_TEST items can dump core
1161924 editing near the end of a textinput item that is scrolling is broken
1164206 Customer's code hangs and core dumps in xview
1164512 Menus don't pop down
1137807 termsw's & ttysw's spew ttysw_sigwinch warning messages in BCP mode
1165614 Read only fields are still Drag&Drop targets in xview
1161700 Gauge readings are wrong
1171812 xview/textsw_insert_from_file makes text read-only
1173869 copy/cut & paste writes data into /tmp/winselection, causing security hole
1085336 notify_set_wait3_func() leaks memory
1079507 cannot create TTYSW object after destroy.
1209456 mailtool message window is slow appearing after xview patch 100452-58 
	or greater
1256462 "0" key on numeric keypad does not work on xview apps running in BCP mode
4008132 Security risk in the libraries.                                                                                          

Installation Instructions:

	1) cd to $OPENWINHOME/lib
	2) su to root
	3) get patch id from current libxview.a by typing
		nm libxview.a | grep patch_id
	4) if patch_id exists
		mv libxview.a libxview.a.patch_id_123456_89
		mv libxview_p.a libxview_p.a.patch_id_123456_89
		mv libxview.so.3.XYZ libxview.so.3.XYZ.patch_id_123456_89
		mv libxview.sa.3.XYZ libxview.sa.3.XYZ.patch_id_123456_89

		where XYZ is the minor version number of the library

		mv $OPENWINHOME/include/xview/scrollbar.h
		    $OPENWINHOME/include/xview/scrollbar.h.patch_id_123456_89
		mv $OPENWINHOME/include/xview/xv_version.h
		    $OPENWINHOME/include/xview/xv_version.h.patch_id_123456_89

		where patch_id_123456_89 is recorded from step #3
	   else
		mv libxview.a libxview.a.30fcs
		mv libxview_p.a libxview_p.a.30fcs
		mv libxview.so.3.1 libxview.so.3.1.30fcs
		mv libxview.sa.3.1 libxview.sa.3.1.30fcs
		mv $OPENWINHOME/include/xview/scrollbar.h
		    $OPENWINHOME/include/xview/scrollbar.h.30fcs
		mv $OPENWINHOME/include/xview/xv_version.h
		    $OPENWINHOME/include/xview/xv_version.h.30fcs
	5) cp patched libxview.a to $OPENWINHOME/lib/libxview.a
	   cp patched libxview_p.a to $OPENWINHOME/lib/libxview_p.a
	   cp patched libxview.so.3.74 to $OPENWINHOME/lib/libxview.so.3.74
	   cp patched libxview.sa.3.74 to $OPENWINHOME/lib/libxview.sa.3.74
	6) chmod 644  $OPENWINHOME/lib/libxview.a $OPENWINHOME/lib/libxview.so.3.74 $OPENWINHOME/lib/libxview.sa.3.74
	7) ln -s libxview.so.3.74 libxview.so
	   ln -s libxview.sa.3.74 libxview.sa
	8) ranlib -t  $OPENWINHOME/lib/libxview.a $OPENWINHOME/lib/libxview_p.a $OPENWINHOME/lib/libxview.sa.3.74
	9) cp scrollbar.h $OPENWINHOME/include/xview/scrollbar.h
	10) cp xv_version.h $OPENWINHOME/include/xview/xv_version.h

NOTES ON cmdtool memory leak (bug 1068828)
------------------------------------------

There are two ways to make use of this patch.  You can turn off the
AGAIN key for the entire desktop, or you can disable it for a particular
application.

1)  You can disable the AGAIN key for your entire desktop.  This will
turn the AGAIN key off for all the textsubwindows and termsubwindows
running on your server.  To do this, you must explicitly disable the 
AGAIN key.  (The AGAIN key is enabled by default.)  To disable the 
AGAIN key, you must set the 
following resource in your .Xdefaults file:

	text.againRecording:	False


2)  If you only want to turn off the again for a particular application,
you must add the following line to the source code of the application:

	/* Turn off AGAIN_RECORDING to save memory */
	xv_set(textsw, TEXTSW_AGAIN_RECORDING, FALSE, 0);


This will have the effect of turning off the AGAIN key for only that
application.


3)  It is also possible to turn off the AGAIN feature for a particular
instance of a tool. Here is an example for cmdtool:

	cmdtool -xrm "text.againRecording: False"


NOTES ON horizontal menus (bug 1098466)
------------------------------------------
To enable the bug compatibility feature (old XView functionality)
of this patch you must set the following resource :

	xview.compatibility.menunrows

Or

	XView.Compatibility.Menunrows

To True.  Taking advantage of the compatibility feature can be accomplished 
for the entire desktop by placing in your .Xdefaults file the following :

	XView.Compatibility.Menunrows:	True

Or on a particular application by using the -xrm command line options :

	$OPENWINHOME/bin/props -xrm "XView.Compatibility.Menunrows: True"

NOTES ON CUT & PASTE PROBLEM
----------------------------
Patch 100452-28 & above will tickle a bug in filemgr (core dump when
drag-n-dropped on the same folder). This bug is fixed in patch
100462-14 & above. 

NOTES ON SERVER PROBLEM
-----------------------
Applications that use the server object must be relinked to this new version
of the library.  Any application which does not explicitly create or gets a
server object will work fine without relinking of the application.

NOTES ON PANEL_CLIENT_DATA PROBLEM
----------------------------------
The XV_KEY_DATA and PANEL_CLIENT_DATA attributes
are now propagated from the PANEL_NUMERIC_TEXT package to
the child PANEL_TEXT item, so that client data may be retrived
transparently within the PANEL_EVENT_PROC.

Also, the PANEL_ITEM_OWNER attribute has been made public, so
the client may obtain the parent object given the child.  In
essence, if PANEL_ITEM_OWNER ever returns a value (non-NULL),
than the client should assume this is the proper handle.

The client should be warned that relying on values retrieved
or set on the child handle are not guaranteed to be forward
compatible IF those values are not handled through the parent
object's API.

