*** empty log message ***
authorroot <root>
Sat, 12 Mar 2005 23:35:14 +0000 (23:35 +0000)
committerroot <root>
Sat, 12 Mar 2005 23:35:14 +0000 (23:35 +0000)
Changes
doc/etc/rxvt-unicode.termcap
src/command.C
src/keyboard.C
src/version.h

diff --git a/Changes b/Changes
index 34a64f9aa1ccaf01b7baa2bbd2dc54a3ac8f6cb0..1d49ea3cfa50885aef9a25d1adda76552105b25a 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,4 @@
 TODO: do font request caching, might help rxvtd on some machines
-TODO: manpage 900mb update
 TODO: safer command: keymap processing.
 TODO: "slow" rendering mode for bidi and scripts
 TODO: read property sequence is broken with respect to utf-8 etc.
@@ -12,6 +11,12 @@ WISH: OnTheSpot editing, or maybe switch to miiiiiiif
 WISH: tabbed windows (hey, just use screen...)
 WISH: just for fun, do shade and tint with XRender.
 
+5.3  Sun Mar 13 00:20:44 CET 2005
+       - fix a bug that allowed to overflow a buffer via a long
+          escape sequence, which is probably exploitable (fix by
+          Rob Holland / Yoann Vandoorselaere / Gentoo Audit Team).
+        - Custom key mappings no longer confuse mouse buttons
+          with modifiers.
        - use XmbSetWMProperties instead of XSetWMProperties.
        - properly update WM_LOCALE.
         - implement _NET_WM_PING protocol.
index bd689e35114ba523e54044e7ba5069f87ec5ba46..222159705fe94db65a1f894a126217d5abe8297d 100644 (file)
@@ -1,16 +1,15 @@
-#      Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt-unicode
+#      Reconstructed via infocmp from file: /etc/terminfo/r/rxvt-unicode
 # (untranslatable capabilities removed to fit entry within 1023 bytes)
 rxvt-unicode|rxvt-unicode terminal (X Window System):\
        :am:bw:eo:km:mi:ms:xn:xo:\
        :co#80:it#8:li#24:lm#0:\
        :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
        :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
-       :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\
-       :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
-       :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
-       :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
-       :i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
-       :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
+       :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:al=\E[L:\
+       :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
+       :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+       :ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:\
+       :im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
        :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
        :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
        :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
index 00a2be9eb64f59ee85e104c663c406215b55c5e4..11f703df452d305cfe53abd3046f39361234ffd7 100644 (file)
@@ -318,9 +318,11 @@ rxvt_term::lookup_key (XKeyEvent &ev)
           // at the point of XOpenIM, so temporarily switch locales
           if (rs[Rs_imLocale])
             SET_LOCALE (rs[Rs_imLocale]);
+
           // assume wchar_t == unicode or better
           len = XwcLookupString (Input_Context, &ev, wkbuf,
                                  KBUFSZ, &keysym, &status_return);
+
           if (rs[Rs_imLocale])
             SET_LOCALE (locale);
 
@@ -3590,7 +3592,7 @@ rxvt_term::get_to_st (unicode_t &ends_how)
 
       seen_esc = false;
 
-      if (n >= sizeof (string) - 1)
+      if (n >= STRING_MAX - 1)
         // stop at some sane length
         return NULL;
 
index f57d115edcc2639fbfa271bdd5ad9b243fd14fd6..ab5efd2e6ffdda15109fb60c6fd995525caf6078 100644 (file)
@@ -262,6 +262,8 @@ keyboard_manager::dispatch (rxvt_term *term, KeySym keysym, unsigned int state)
 {
   assert (hash[0] == 0 && "register_done() need to be called");
 
+  state &= OtherModMask; // mask out uninteresting modifiers
+
   if (state & term->ModMetaMask)    state |= MetaMask;
   if (state & term->ModNumLockMask) state |= NumLockMask;
   if (state & term->ModLevel3Mask)  state |= Level3Mask;
index 5d2d52bffb4e550d3c169fcd6018340d1aed7975..fc2c126e63acf042c8e8b77b7f9885b20f74c46d 100644 (file)
@@ -1,3 +1,3 @@
 // VERSION _must_ be \d.\d+
-#define VERSION "5.2"
-#define DATE   "2005-02-20"
+#define VERSION "5.3"
+#define DATE   "2005-03-13"