Bug#645409: Error in patch 010_wx26_trans.patch

Olly Betts olly at survex.com
Sat Oct 15 14:45:43 UTC 2011


Package: jugglemaster
Version: 0.4-5

I noticed an error in 010_wx26_trans.patch (thanks to a compiler warning which
I noticed while checking if the package build with wxwidgets2.8):

@@ -208,25 +208,25 @@
 }

 void JMFrame::setSiteSwap(wxString *newsite) {
-  jmlib->setPattern("Something",(JML_CHAR *)(const char *)*newsite,HR_DEF, DR_DEF);
+  jmlib->setPattern("Something",(JML_CHAR *)(const char *)*newsite->mb_str(wxConvUTF8),HR_DEF, DR_DEF);
 }

 void JMFrame::setStyle(wxString *newstyle) {
-  jmlib->setStyle((JML_CHAR *)(const char *)*newstyle);
+  jmlib->setStyle((JML_CHAR *)(const char *)*newstyle->mb_str(wxConvUTF8));
 }

 void JMFrame::changeSiteSwap(wxCommandEvent& WXUNUSED(event))

The two cases are the same, but looking at the second as there aren't other
parameters so it's clearer:

Before the change, this dereferences the wxString * to give a wxString, which
is then cast to const char * and then to JML_CHAR *

After the change, newstyle->mb_str(wxConvUTF8) returns a pointer to a UTF8
C string, which is then dereferenced to give its first byte, and that byte
value is then cast to a pointer.  That's clearly bogus - the * before
newstyle should be removed.  Then we would cast the UTF-8 C string to const
char * and JML_CHAR * much like before.

I've attached a corrected version of this patch.

Cheers,
    Olly
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 010_wx26_trans.patch
Type: text/x-diff
Size: 32632 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-games-devel/attachments/20111016/05f3b927/attachment-0001.patch>


More information about the Pkg-games-devel mailing list