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