Resolves: rhbz#650503 Arabic spellchecking crash
This commit is contained in:
		
							parent
							
								
									a744e2346f
								
							
						
					
					
						commit
						a5e8ae46a5
					
				
							
								
								
									
										150
									
								
								backport.rhbz650503.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								backport.rhbz650503.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,150 @@ | |||||||
|  | Index: src/hunspell/affentry.cxx
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: /cvsroot/hunspell/hunspell/src/hunspell/affentry.cxx,v | ||||||
|  | retrieving revision 1.5 | ||||||
|  | diff -u -r1.5 affentry.cxx
 | ||||||
|  | --- src/hunspell/affentry.cxx	27 Apr 2010 15:01:04 -0000	1.5
 | ||||||
|  | +++ src/hunspell/affentry.cxx	8 Nov 2010 11:36:57 -0000
 | ||||||
|  | @@ -106,7 +106,7 @@
 | ||||||
|  |                  pos = NULL; | ||||||
|  |                  p = nextchar(p); | ||||||
|  |                  // skip the next character | ||||||
|  | -                if (!ingroup) for (st++; (opts & aeUTF8) && (*st & 0xc0) == 0x80; st++);
 | ||||||
|  | +                if (!ingroup && *st) for (st++; (opts & aeUTF8) && (*st & 0xc0) == 0x80; st++);
 | ||||||
|  |                  if (*st == '\0' && p) return 0; // word <= condition | ||||||
|  |                  break; | ||||||
|  |              } | ||||||
|  | Index: src/hunspell/hunspell.cxx
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hunspell.cxx,v | ||||||
|  | retrieving revision 1.23 | ||||||
|  | diff -u -r1.23 hunspell.cxx
 | ||||||
|  | --- src/hunspell/hunspell.cxx	3 Nov 2010 16:08:04 -0000	1.23
 | ||||||
|  | +++ src/hunspell/hunspell.cxx	8 Nov 2010 11:36:58 -0000
 | ||||||
|  | @@ -570,6 +570,11 @@
 | ||||||
|  |       word = w2; | ||||||
|  |    } else word = w; | ||||||
|  |   | ||||||
|  | +  len = strlen(word);
 | ||||||
|  | +
 | ||||||
|  | +  if (!len)
 | ||||||
|  | +      return NULL;
 | ||||||
|  | +
 | ||||||
|  |    // word reversing wrapper for complex prefixes | ||||||
|  |    if (complexprefixes) { | ||||||
|  |      if (word != w2) { | ||||||
|  | @@ -607,7 +612,6 @@
 | ||||||
|  |    // check with affixes | ||||||
|  |    if (!he && pAMgr) { | ||||||
|  |       // try stripping off affixes */ | ||||||
|  | -     len = strlen(word);
 | ||||||
|  |       he = pAMgr->affix_check(word, len, 0); | ||||||
|  |   | ||||||
|  |       // check compound restriction and onlyupcase | ||||||
|  | Index: tests/Makefile.am
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: /cvsroot/hunspell/hunspell/tests/Makefile.am,v | ||||||
|  | retrieving revision 1.4 | ||||||
|  | diff -u -r1.4 Makefile.am
 | ||||||
|  | --- tests/Makefile.am	7 Oct 2010 21:05:49 -0000	1.4
 | ||||||
|  | +++ tests/Makefile.am	8 Nov 2010 11:36:58 -0000
 | ||||||
|  | @@ -101,7 +101,8 @@
 | ||||||
|  |  fullstrip.test \ | ||||||
|  |  iconv.test \ | ||||||
|  |  oconv.test \ | ||||||
|  | -korean.test
 | ||||||
|  | +korean.test \
 | ||||||
|  | +arabic.test
 | ||||||
|  |  # infixes.test | ||||||
|  |   | ||||||
|  |  distclean-local: | ||||||
|  | @@ -593,7 +594,10 @@
 | ||||||
|  |  korean.dic \ | ||||||
|  |  korean.good \ | ||||||
|  |  korean.wrong \ | ||||||
|  | -korean.test
 | ||||||
|  | +korean.test \
 | ||||||
|  | +arabic.aff \
 | ||||||
|  | +arabic.dic \
 | ||||||
|  | +arabic.bad
 | ||||||
|  |  # infixes.aff | ||||||
|  |  # infixes.dic | ||||||
|  |  # infixes.good | ||||||
|  | Index: tests/Makefile.in
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: /cvsroot/hunspell/hunspell/tests/Makefile.in,v | ||||||
|  | retrieving revision 1.8 | ||||||
|  | diff -u -r1.8 Makefile.in
 | ||||||
|  | --- tests/Makefile.in	7 Oct 2010 21:05:49 -0000	1.8
 | ||||||
|  | +++ tests/Makefile.in	8 Nov 2010 11:36:58 -0000
 | ||||||
|  | @@ -283,6 +283,7 @@
 | ||||||
|  |  SUBDIRS = suggestiontest | ||||||
|  |  XFAIL_TESTS = @XFAILED@ | ||||||
|  |  TESTS = \ | ||||||
|  | +arabic.test \
 | ||||||
|  |  affixes.test \ | ||||||
|  |  condition.test \ | ||||||
|  |  condition_utf.test \ | ||||||
|  | @@ -379,7 +380,8 @@
 | ||||||
|  |  fullstrip.test \ | ||||||
|  |  iconv.test \ | ||||||
|  |  oconv.test \ | ||||||
|  | -korean.test
 | ||||||
|  | +korean.test \
 | ||||||
|  | +arabic.test
 | ||||||
|  |   | ||||||
|  |  EXTRA_DIST = \ | ||||||
|  |  test.sh \ | ||||||
|  | @@ -867,7 +869,10 @@
 | ||||||
|  |  korean.dic \ | ||||||
|  |  korean.good \ | ||||||
|  |  korean.wrong \ | ||||||
|  | -korean.test
 | ||||||
|  | +korean.test \
 | ||||||
|  | +arabic.aff \
 | ||||||
|  | +arabic.dic \
 | ||||||
|  | +arabic.bad
 | ||||||
|  |   | ||||||
|  |  all: all-recursive | ||||||
|  |   | ||||||
|  | Index: arabic.test
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: arabic.test | ||||||
|  | diff -N arabic.test
 | ||||||
|  | --- /dev/null	1 Jan 1970 00:00:00 -0000
 | ||||||
|  | +++ tests/arabic.test	8 Nov 2010 11:41:33 -0000
 | ||||||
|  | @@ -0,0 +1,4 @@
 | ||||||
|  | +#!/bin/sh
 | ||||||
|  | +DIR="`dirname $0`"
 | ||||||
|  | +NAME="`basename $0 .test`"
 | ||||||
|  | +$DIR/test.sh $NAME -i UTF-8
 | ||||||
|  | Index: arabic.bad
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: arabic.bad | ||||||
|  | diff -N arabic.bad
 | ||||||
|  | --- /dev/null	1 Jan 1970 00:00:00 -0000
 | ||||||
|  | +++ tests/arabic.bad	8 Nov 2010 11:41:59 -0000
 | ||||||
|  | @@ -0,0 +1 @@
 | ||||||
|  | +ـ
 | ||||||
|  | Index: arabic.dic
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: arabic.dic | ||||||
|  | diff -N arabic.dic
 | ||||||
|  | --- /dev/null	1 Jan 1970 00:00:00 -0000
 | ||||||
|  | +++ tests/arabic.dic	8 Nov 2010 11:42:15 -0000
 | ||||||
|  | @@ -0,0 +1,2 @@
 | ||||||
|  | +1
 | ||||||
|  | +ب
 | ||||||
|  | Index: arabic.aff
 | ||||||
|  | ===================================================================
 | ||||||
|  | RCS file: arabic.aff | ||||||
|  | diff -N arabic.aff
 | ||||||
|  | --- /dev/null	1 Jan 1970 00:00:00 -0000
 | ||||||
|  | +++ tests/arabic.aff	8 Nov 2010 11:42:27 -0000
 | ||||||
|  | @@ -0,0 +1,6 @@
 | ||||||
|  | +SET UTF-8
 | ||||||
|  | +TRY أ
 | ||||||
|  | +IGNORE ٌٍَُِّْ
 | ||||||
|  | +
 | ||||||
|  | +PFX	Aa	Y	1
 | ||||||
|  | +PFX	Aa	0	0/X0	أ[^ي]
 | ||||||
| @ -3,7 +3,7 @@ | |||||||
| Name:      hunspell | Name:      hunspell | ||||||
| Summary:   A spell checker and morphological analyzer library | Summary:   A spell checker and morphological analyzer library | ||||||
| Version:   1.2.12 | Version:   1.2.12 | ||||||
| Release:   2%{?dist} | Release:   3%{?dist} | ||||||
| Source:    http://downloads.sourceforge.net/%{name}/hunspell-%{version}.tar.gz | Source:    http://downloads.sourceforge.net/%{name}/hunspell-%{version}.tar.gz | ||||||
| Group:     System Environment/Libraries | Group:     System Environment/Libraries | ||||||
| URL:       http://hunspell.sourceforge.net/ | URL:       http://hunspell.sourceforge.net/ | ||||||
| @ -17,6 +17,7 @@ BuildRequires: valgrind | |||||||
| BuildRequires: words | BuildRequires: words | ||||||
| %endif | %endif | ||||||
| Patch1: backport.warnings.patch | Patch1: backport.warnings.patch | ||||||
|  | Patch2: backport.rhbz650503.patch | ||||||
| 
 | 
 | ||||||
| %description | %description | ||||||
| Hunspell is a spell checker and morphological analyzer library and program  | Hunspell is a spell checker and morphological analyzer library and program  | ||||||
| @ -35,6 +36,8 @@ Includes and definitions for developing with hunspell | |||||||
| %prep | %prep | ||||||
| %setup -q | %setup -q | ||||||
| %patch1 -p0 -b .backport.warnings | %patch1 -p0 -b .backport.warnings | ||||||
|  | %patch2 -p0 -b .backport.rhbz650503 | ||||||
|  | chmod u+x tests/arabic.test | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| configureflags="--disable-rpath --disable-static --with-ui --with-readline" | configureflags="--disable-rpath --disable-static --with-ui --with-readline" | ||||||
| @ -123,6 +126,9 @@ rm -rf $RPM_BUILD_ROOT | |||||||
| %{_mandir}/man3/hunspell.3.gz | %{_mandir}/man3/hunspell.3.gz | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Nov 08 2010 Caolán McNamara <caolanm@redhat.com> - 1.2.12-3 | ||||||
|  | - Resolves: rhbz#650503 Arabic spellchecking crash | ||||||
|  | 
 | ||||||
| * Fri Nov 05 2010 Caolán McNamara <caolanm@redhat.com> - 1.2.12-2 | * Fri Nov 05 2010 Caolán McNamara <caolanm@redhat.com> - 1.2.12-2 | ||||||
| - Resolves: rhbz#648740 thousands of trailing empty rules spew | - Resolves: rhbz#648740 thousands of trailing empty rules spew | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user