aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/902_johab1.patch
blob: cd5d8a7cb3dbcf4e1cec50fb629b803949c4b898 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Subject: Fix segfault on bogus text for wc_N_to_johab1
Author: Tatsuya Kinoshita <tats@debian.org>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820373
Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=5a159af05d8556a3f9f8f1a42d8fc153ffbc9694

diff --git a/libwc/johab.c b/libwc/johab.c
index 8d587b8..498b1bb 100644
--- a/libwc/johab.c
+++ b/libwc/johab.c
@@ -160,9 +160,9 @@ wc_N_to_johab1(wc_uint32 code)
 {
     wc_uint32 a, b, c;
 
-    a = N_johab1_map[0][(code / 28) / 21];
-    b = N_johab1_map[1][(code / 28) % 21];
-    c = N_johab1_map[2][ code % 28      ];
+    a = N_johab1_map[0][(code / 28) / 21 & 0x1F];
+    b = N_johab1_map[1][(code / 28) % 21 & 0x1F];
+    c = N_johab1_map[2][ code % 28       & 0x1F];
     return 0x8000 | (a << 10) | (b << 5) | c;
 }