Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(496)

Side by Side Diff: third_party/harfbuzz/src/harfbuzz-arabic.c

Issue 271098: Fix harfbuzz read past end of string on arabic text. (Closed)
Patch Set: Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/harfbuzz/README.google ('k') | tools/valgrind/memcheck/suppressions.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3 * 3 *
4 * This is part of HarfBuzz, an OpenType Layout engine library. 4 * This is part of HarfBuzz, an OpenType Layout engine library.
5 * 5 *
6 * Permission is hereby granted, without written agreement and without 6 * Permission is hereby granted, without written agreement and without
7 * license or royalty fees, to use, copy, modify, and distribute this 7 * license or royalty fees, to use, copy, modify, and distribute this
8 * software and its documentation for any purpose, provided that the 8 * software and its documentation for any purpose, provided that the
9 * above copyright notice and the following two paragraphs appear in 9 * above copyright notice and the following two paragraphs appear in
10 * all copies of this software. 10 * all copies of this software.
(...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 uc = item->string + item->item.pos; 1002 uc = item->string + item->item.pos;
1003 1003
1004 properties = props; 1004 properties = props;
1005 f = 0; 1005 f = 0;
1006 l = item->item.length; 1006 l = item->item.length;
1007 if (item->item.pos > 0) { 1007 if (item->item.pos > 0) {
1008 --f; 1008 --f;
1009 ++l; 1009 ++l;
1010 ++properties; 1010 ++properties;
1011 } 1011 }
1012 if (f + l < item->stringLength) { 1012 if (f + l + item->item.pos < item->stringLength) {
1013 ++l; 1013 ++l;
1014 } 1014 }
1015 getArabicProperties(uc+f, l, props); 1015 getArabicProperties(uc+f, l, props);
1016 1016
1017 for (i = 0; i < (int)item->num_glyphs; i++) { 1017 for (i = 0; i < (int)item->num_glyphs; i++) {
1018 apply[i] = 0; 1018 apply[i] = 0;
1019 1019
1020 if (properties[i].shape == XIsolated) 1020 if (properties[i].shape == XIsolated)
1021 apply[i] |= MediProperty|FinaProperty|InitProperty; 1021 apply[i] |= MediProperty|FinaProperty|InitProperty;
1022 else if (properties[i].shape == XMedial) 1022 else if (properties[i].shape == XMedial)
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 item->item.bidiLevel % 2); 1079 item->item.bidiLevel % 2);
1080 1080
1081 HB_FREE_STACKARRAY(shapedChars); 1081 HB_FREE_STACKARRAY(shapedChars);
1082 1082
1083 if (!haveGlyphs) 1083 if (!haveGlyphs)
1084 return FALSE; 1084 return FALSE;
1085 1085
1086 HB_HeuristicPosition(item); 1086 HB_HeuristicPosition(item);
1087 return TRUE; 1087 return TRUE;
1088 } 1088 }
1089
1090
OLDNEW
« no previous file with comments | « third_party/harfbuzz/README.google ('k') | tools/valgrind/memcheck/suppressions.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698