diff --git a/.gitignore b/.gitignore index 546b286..75d77e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -SOURCES/libXaw3d-1.6.2.tar.bz2 +Xaw3d-1.5E.tar.gz +/libXaw3d-1.6.1.tar.bz2 /libXaw3d-1.6.2.tar.bz2 diff --git a/Xaw3d-1.5E-secure.patch b/Xaw3d-1.5E-secure.patch new file mode 100644 index 0000000..e1ee138 --- /dev/null +++ b/Xaw3d-1.5E-secure.patch @@ -0,0 +1,95 @@ +From 2094de170afa65b057bca4a1e9d38ca7ae656265 Mon Sep 17 00:00:00 2001 +From: Markus Steinborn +Date: Sat, 24 Apr 2010 17:02:15 +0200 +Subject: [PATCH] Xaw3d-1.5E-secure.patch + +--- + xc/lib/Xaw3d/AsciiSrcP.h | 6 +++- + xc/lib/Xaw3d/Layout.c | 18 +++++++++-- + xc/lib/Xaw3d/MenuButton.c | 15 +++++++-- + xc/lib/Xaw3d/MultiSrcP.h | 6 +++- + xc/lib/Xaw3d/Simple.c | 18 ++++++++--- + xc/lib/Xaw3d/SimpleMenu.c | 16 ++++++++-- + xc/lib/Xaw3d/SmeBSB.c | 51 +++++++++++++++++++++----------- + xc/lib/Xaw3d/Text.c | 50 +++++++++++++++++++++++-------- + xc/lib/Xaw3d/TextPop.c | 71 ++++++++++++++++++++++++++++++++++++++------- + xc/lib/Xaw3d/XawAlloc.h | 10 ++++++ + xc/lib/Xaw3d/XawI18n.h | 2 + + xc/lib/Xaw3d/XawIm.c | 4 +- + 12 files changed, 206 insertions(+), 61 deletions(-) + create mode 100644 xc/lib/Xaw3d/XawAlloc.h + +diff --git libXaw3d-1.6.1/src/Layout.c libXaw3d-1.6.1/src/Layout.c +index 44d391a..dd4b253 100644 +--- libXaw3d-1.6.1/src/Layout.c ++++ libXaw3d-1.6.1/src/Layout.c +@@ -39,6 +39,8 @@ + # include + #endif + ++#include "XawAlloc.h" ++ + #include + #include + +@@ -595,10 +597,18 @@ Evaluate (l, box, expr, natural) + nexpr = LookupVariable (box, expr->u.variable); + if (!nexpr) + { +- char buf[256]; +- (void) sprintf (buf, "Layout: undefined variable %s\n", +- XrmQuarkToString (expr->u.variable)); +- XtError (buf); ++ char *pvar = XrmQuarkToString (expr->u.variable); ++ char *msg = "Layout: undefined variable "; ++ int len = strlen(msg) + strlen(pvar) + 2; ++ char *pbuf, buf[256]; ++ ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf != NULL) ++ { ++ sprintf(pbuf, "%s%s\n", msg, pvar); ++ XtError (buf); ++ XtStackFree(pbuf, buf); ++ } + return 0.0; + } + return Evaluate (l, box, nexpr, natural); +diff --git libXaw3d-1.6.1/src/XawI18n.h libXaw3d-1.6.1/src/XawI18n.h +index 1b0ee5d..b0176bf 100644 +--- libXaw3d-1.6.1/src/XawI18n.h ++++ libXaw3d-1.6.1/src/XawI18n.h +@@ -29,11 +29,13 @@ in this Software without prior written authorization from the X Consortium. + + #ifdef HAS_WCTYPE_H + #include ++#ifndef NO_WIDEC_H + #include + #define wcslen(c) wslen(c) + #define wcscpy(d,s) wscpy(d,s) + #define wcsncpy(d,s,l) wsncpy(d,s,l) + #endif ++#endif + + #ifdef HAS_WCHAR_H + #include +diff --git libXaw3d-1.6.1/src/XawIm.c libXaw3d-1.6.1/src/XawIm.c +index 730c393..a5d0032 100644 +--- libXaw3d-1.6.1/src/XawIm.c ++++ libXaw3d-1.6.1/src/XawIm.c +@@ -1644,10 +1644,10 @@ _XawImWcLookupString( inwidg, event, buffer_return, bytes_buffer, + + if ((vw = SearchVendorShell(inwidg)) && (ve = GetExtPart(vw)) && + ve->im.xim && (p = GetIcTableShared(inwidg, ve)) && p->xic) { +- return(XwcLookupString(p->xic, event, buffer_return, bytes_buffer, ++ return(XwcLookupString(p->xic, event, buffer_return, bytes_buffer/sizeof(wchar_t), + keysym_return, status_return)); + } +- ret = XLookupString( event, tmp_buf, 64, keysym_return, ++ ret = XLookupString( event, tmp_buf, sizeof(tmp_buf), keysym_return, + (XComposeStatus*) status_return ); + for ( i = 0, tmp_p = tmp_buf, buf_p = buffer_return; i < ret; i++ ) { + *buf_p++ = _Xaw_atowc(*tmp_p++); +-- +1.6.1 +