This service will be undergoing maintenance at 00:00 UTC, 2016-09-28. It is expected to last about 1 hours
Bug 180362 - Pasting into XmTextField is unreliable
Pasting into XmTextField is unreliable
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: openmotif (Show other bugs)
3.0
All Linux
medium Severity medium
: ---
: ---
Assigned To: Thomas Woerner
:
Depends On: 179549
Blocks: RHEL3U8CanFix
  Show dependency treegraph
 
Reported: 2006-02-07 10:43 EST by Thomas Woerner
Modified: 2007-11-30 17:07 EST (History)
0 users

See Also:
Fixed In Version: RHBA-2006-0293
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-07-20 10:36:48 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Thomas Woerner 2006-02-07 10:43:16 EST
+++ This bug was initially created as a clone of Bug #179549 +++

Description of problem:

We're using a UTF-8 locale and have a modify verify callback on our XmTextField
widgets.  In this environment selecting text and pasting it into an XmTextField
is unreliable:  sometimes nothing happens and sometimes garbage is appended to
the pasted text.  Everything works properly in the C locale or if there's no
modify verify callback.

Running the application under valgrind shows a couple of memory problems related
to the issue:

In TextFSel.c, around line 1100, the array wc_value is one character too short.

In TextF.c, around line 2934, the size of the array insert_orig is specified
using tf->text.max_char_size, whereas the documentation indicates that insert is
an array of wchar_t.  In our UTF-8 locale tf->text.max_char_size is 6 while
sizeof(wchar_t) is 4, so the bcopy at line 2935 is fetching data from beyond the
end of the array insert.

I've produced a patch which I think fixes these issues.  With this patch we can
paste text into our application reliably and valgrind is happy.


Version-Release number of selected component (if applicable):

2.2.3-9.RHEL4.1, though other versions are affected


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

I've raised this issue upstream at:

   http://bugs.motifzone.net/show_bug.cgi?id=1321

-- Additional comment from rmy@pobox.com on 2006-02-01 06:23 EST --
Created an attachment (id=123954)
Proposed patch


-- Additional comment from twoerner@redhat.com on 2006-02-01 12:03 EST --
Created an attachment (id=123975)
Revised patch after code review.

This patch honors the text.max_char_size for generation of insert_orig in the
same way as ModifyVerify does.

-- Additional comment from rmy@pobox.com on 2006-02-01 16:38 EST --
Thanks for the revised patch, Thomas.  I've tried it with my test program and it
seems to work nicely.  Valgrind is now happy in both UTF-8 and C locales.

-- Additional comment from rmy@pobox.com on 2006-02-06 09:55 EST --
On further investigation I find that previous patches don't work if the
clipboard selection is used rather than the primary selection  (for example,
because XmTextFieldPaste has been called).  In this case ds->value (TextFSel.c
line 1102) isn't null terminated.  I've made a new patch to cover this case.

-- Additional comment from rmy@pobox.com on 2006-02-06 09:57 EST --
Created an attachment (id=124259)
Revised patch to handle clipboard


-- Additional comment from twoerner@redhat.com on 2006-02-06 11:07 EST --
Please attach your test case.

-- Additional comment from rmy@pobox.com on 2006-02-06 11:42 EST --
Created an attachment (id=124266)
testcase

Here's a hacked version of one of the examples from the O'Reilly Motif book
that should illustrate the problem.  I've changed the XmText widget in the
original to XmTextField.
Comment 5 Red Hat Bugzilla 2006-07-20 10:36:48 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2006-0293.html

Note You need to log in before you can comment on or make changes to this bug.