~ubuntu-branches/ubuntu/lucid/eglibc/lucid-updates

« back to all changes in this revision

Viewing changes to debian/patches/any/glibc-CVE-2011-2702.patch

  • Committer: Package Import Robot
  • Author(s): Steve Beattie
  • Date: 2012-03-07 10:28:32 UTC
  • mfrom: (42.1.3 lucid-security)
  • Revision ID: package-import@ubuntu.com-20120307102832-om8ercp049cypxlc
Tags: 2.11.1-0ubuntu7.10
* SECURITY UPDATE: timezone header parsing integer overflow (LP: #906961)
  - debian/patches/any/glibc-CVE-2009-5029.patch: Check values from
    TZ file header
  - CVE-2009-5029
* SECURITY UPDATE: memory consumption denial of service in fnmatch
  - debian/patches/any/glibc-CVE-2011-1071.patch: avoid too much
    stack use in fnmatch.
  - CVE-2011-1071
* SECURITY UPDATE: /etc/mtab corruption denial of service
  - debian/patches/any/glibc-CVE-2011-1089.patch: Report write
    error in addmnt even for cached streams
  - CVE-2011-1089
* SECURITY UPDATE: insufficient locale environment sanitization
  - debian/patches/any/glibc-CVE-2011-1095.patch: escape contents of
    LANG environment variable.
  - CVE-2011-1095
* SECURITY UPDATE: ld.so insecure handling of privileged programs'
  RPATHs with $ORIGIN
  - debian/patches/any/glibc-CVE-2011-1658.patch: improve handling of
    RPATH and ORIGIN
  - CVE-2011-1658
* SECURITY UPDATE: fnmatch integer overflow
  - debian/patches/any/glibc-CVE-2011-1659.patch: check size of
    pattern in wide character representation
  - CVE-2011-1659
* SECURITY UPDATE: signedness bug in memcpy_ssse3
  - debian/patches/any/glibc-CVE-2011-2702.patch: use unsigned
    comparison instructions
  - CVE-2011-2702
* SECURITY UPDATE: DoS in RPC implementation (LP: #901716)
  - debian/patches/any/glibc-CVE-2011-4609.patch: nanosleep when too
    many open fds is detected
  - CVE-2011-4609
* SECURITY UPDATE: vfprintf nargs overflow leading to FORTIFY
  check bypass
  - debian/patches/any/glibc-CVE-2012-0864.patch: check for integer
    overflow
  - CVE-2012-0864
* debian/testsuite-checking/expected-results-x86_64-linux-gnu-libc,
  debian/testsuite-checking/expected-results-i686-linux-gnu-i386,
  debian/testsuite-checking/expected-results-arm-linux-gnueabi-libc:
  update for pre-existing testsuite failures that prevents FTBFS
  when the testsuite is enabled.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From a0ac24d98ace90d1ccba6a2f3e7d55600f2fdb6e Mon Sep 17 00:00:00 2001
 
2
From: H.J. Lu <hongjiu.lu@intel.com>
 
3
Date: Wed, 24 Feb 2010 18:20:57 -0800
 
4
Subject: [PATCH] Fix issues in x86 memcpy-ssse3.S
 
5
 
 
6
        * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Use unsigned
 
7
        conditional jumps.
 
8
        Correct unwind info.
 
9
 
 
10
CVE-2011-2702
 
11
 
 
12
---
 
13
 ChangeLog                                  |    4 +
 
14
 sysdeps/i386/i686/multiarch/memcpy-ssse3.S |  113 ++++++++++++++++++----------
 
15
 2 files changed, 77 insertions(+), 40 deletions(-)
 
16
 
 
17
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
 
18
index 749c82d..ec9eeb9 100644
 
19
--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
 
20
+++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
 
21
@@ -128,7 +128,7 @@ ENTRY (MEMCPY)
 
22
        jb      L(copy_forward)
 
23
        je      L(fwd_write_0bytes)
 
24
        cmp     $32, %ecx
 
25
-       jge     L(memmove_bwd)
 
26
+       jae     L(memmove_bwd)
 
27
        jmp     L(bk_write_less32bytes_2)
 
28
 L(memmove_bwd):
 
29
        add     %ecx, %eax
 
30
@@ -139,12 +139,12 @@ L(memmove_bwd):
 
31
 L(copy_forward):
 
32
 #endif
 
33
        cmp     $48, %ecx
 
34
-       jge     L(48bytesormore)
 
35
+       jae     L(48bytesormore)
 
36
 
 
37
 L(fwd_write_less32bytes):
 
38
 #ifndef USE_AS_MEMMOVE
 
39
        cmp     %dl, %al
 
40
-       jl      L(bk_write)
 
41
+       jb      L(bk_write)
 
42
 #endif
 
43
        add     %ecx, %edx
 
44
        add     %ecx, %eax
 
45
@@ -162,6 +162,7 @@ L(48bytesormore):
 
46
        movl    %edx, %edi
 
47
        and     $-16, %edx
 
48
        PUSH (%esi)
 
49
+       cfi_remember_state
 
50
        add     $16, %edx
 
51
        movl    %edi, %esi
 
52
        sub     %edx, %edi
 
53
@@ -181,12 +182,14 @@ L(48bytesormore):
 
54
 #endif
 
55
 
 
56
        mov     %eax, %edi
 
57
-       jge     L(large_page)
 
58
+       jae     L(large_page)
 
59
        and     $0xf, %edi
 
60
        jz      L(shl_0)
 
61
 
 
62
        BRANCH_TO_JMPTBL_ENTRY (L(shl_table), %edi, 4)
 
63
 
 
64
+       cfi_restore_state
 
65
+       cfi_remember_state
 
66
        ALIGN (4)
 
67
 L(shl_0):
 
68
        movdqu  %xmm0, (%esi)
 
69
@@ -202,7 +205,7 @@ L(shl_0_loop):
 
70
        movdqa  %xmm0, (%edx, %edi)
 
71
        movdqa  %xmm1, 16(%edx, %edi)
 
72
        lea     32(%edi), %edi
 
73
-       jl      L(shl_0_end)
 
74
+       jb      L(shl_0_end)
 
75
 
 
76
        movdqa  (%eax, %edi), %xmm0
 
77
        movdqa  16(%eax, %edi), %xmm1
 
78
@@ -210,7 +213,7 @@ L(shl_0_loop):
 
79
        movdqa  %xmm0, (%edx, %edi)
 
80
        movdqa  %xmm1, 16(%edx, %edi)
 
81
        lea     32(%edi), %edi
 
82
-       jl      L(shl_0_end)
 
83
+       jb      L(shl_0_end)
 
84
 
 
85
        movdqa  (%eax, %edi), %xmm0
 
86
        movdqa  16(%eax, %edi), %xmm1
 
87
@@ -218,7 +221,7 @@ L(shl_0_loop):
 
88
        movdqa  %xmm0, (%edx, %edi)
 
89
        movdqa  %xmm1, 16(%edx, %edi)
 
90
        lea     32(%edi), %edi
 
91
-       jl      L(shl_0_end)
 
92
+       jb      L(shl_0_end)
 
93
 
 
94
        movdqa  (%eax, %edi), %xmm0
 
95
        movdqa  16(%eax, %edi), %xmm1
 
96
@@ -234,6 +237,7 @@ L(shl_0_end):
 
97
        POP (%edi)
 
98
        BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd), %ecx, 4)
 
99
 
 
100
+       CFI_PUSH (%edi)
 
101
 L(shl_0_gobble):
 
102
 
 
103
 #ifdef DATA_CACHE_SIZE_HALF
 
104
@@ -250,7 +254,7 @@ L(shl_0_gobble):
 
105
 
 
106
        POP (%edi)
 
107
        lea     -128(%ecx), %ecx
 
108
-       jge     L(shl_0_gobble_mem_loop)
 
109
+       jae     L(shl_0_gobble_mem_loop)
 
110
 L(shl_0_gobble_cache_loop):
 
111
        movdqa  (%eax), %xmm0
 
112
        movdqa  0x10(%eax), %xmm1
 
113
@@ -272,8 +276,7 @@ L(shl_0_gobble_cache_loop):
 
114
        movdqa  %xmm7, 0x70(%edx)
 
115
        lea     0x80(%edx), %edx
 
116
 
 
117
-       jge     L(shl_0_gobble_cache_loop)
 
118
-L(shl_0_gobble_cache_loop_tail):
 
119
+       jae     L(shl_0_gobble_cache_loop)
 
120
        cmp     $-0x40, %ecx
 
121
        lea     0x80(%ecx), %ecx
 
122
        jl      L(shl_0_cache_less_64bytes)
 
123
@@ -294,7 +297,7 @@ L(shl_0_gobble_cache_loop_tail):
 
124
        add     $0x40, %edx
 
125
 L(shl_0_cache_less_64bytes):
 
126
        cmp     $0x20, %ecx
 
127
-       jl      L(shl_0_cache_less_32bytes)
 
128
+       jb      L(shl_0_cache_less_32bytes)
 
129
        movdqa  (%eax), %xmm0
 
130
        sub     $0x20, %ecx
 
131
        movdqa  0x10(%eax), %xmm1
 
132
@@ -304,7 +307,7 @@ L(shl_0_cache_less_64bytes):
 
133
        add     $0x20, %edx
 
134
 L(shl_0_cache_less_32bytes):
 
135
        cmp     $0x10, %ecx
 
136
-       jl      L(shl_0_cache_less_16bytes)
 
137
+       jb      L(shl_0_cache_less_16bytes)
 
138
        sub     $0x10, %ecx
 
139
        movdqa  (%eax), %xmm0
 
140
        add     $0x10, %eax
 
141
@@ -342,7 +345,7 @@ L(shl_0_gobble_mem_loop):
 
142
        movdqa  %xmm7, 0x70(%edx)
 
143
        lea     0x80(%edx), %edx
 
144
 
 
145
-       jge     L(shl_0_gobble_mem_loop)
 
146
+       jae     L(shl_0_gobble_mem_loop)
 
147
        cmp     $-0x40, %ecx
 
148
        lea     0x80(%ecx), %ecx
 
149
        jl      L(shl_0_mem_less_64bytes)
 
150
@@ -363,7 +366,7 @@ L(shl_0_gobble_mem_loop):
 
151
        add     $0x40, %edx
 
152
 L(shl_0_mem_less_64bytes):
 
153
        cmp     $0x20, %ecx
 
154
-       jl      L(shl_0_mem_less_32bytes)
 
155
+       jb      L(shl_0_mem_less_32bytes)
 
156
        movdqa  (%eax), %xmm0
 
157
        sub     $0x20, %ecx
 
158
        movdqa  0x10(%eax), %xmm1
 
159
@@ -373,7 +376,7 @@ L(shl_0_mem_less_64bytes):
 
160
        add     $0x20, %edx
 
161
 L(shl_0_mem_less_32bytes):
 
162
        cmp     $0x10, %ecx
 
163
-       jl      L(shl_0_mem_less_16bytes)
 
164
+       jb      L(shl_0_mem_less_16bytes)
 
165
        sub     $0x10, %ecx
 
166
        movdqa  (%eax), %xmm0
 
167
        add     $0x10, %eax
 
168
@@ -384,7 +387,8 @@ L(shl_0_mem_less_16bytes):
 
169
        add     %ecx, %eax
 
170
        BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd), %ecx, 4)
 
171
 
 
172
-
 
173
+       cfi_restore_state
 
174
+       cfi_remember_state
 
175
        ALIGN (4)
 
176
 L(shl_1):
 
177
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
178
@@ -406,7 +410,7 @@ L(shl_1_loop):
 
179
        movdqa  %xmm2, -32(%edx, %edi)
 
180
        movdqa  %xmm3, -16(%edx, %edi)
 
181
 
 
182
-       jl      L(shl_1_end)
 
183
+       jb      L(shl_1_end)
 
184
 
 
185
        movdqa  16(%eax, %edi), %xmm2
 
186
        sub     $32, %ecx
 
187
@@ -428,6 +432,8 @@ L(shl_1_end):
 
188
        POP (%edi)
 
189
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
190
 
 
191
+       cfi_restore_state
 
192
+       cfi_remember_state
 
193
        ALIGN (4)
 
194
 L(shl_2):
 
195
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
196
@@ -449,7 +455,7 @@ L(shl_2_loop):
 
197
        movdqa  %xmm2, -32(%edx, %edi)
 
198
        movdqa  %xmm3, -16(%edx, %edi)
 
199
 
 
200
-       jl      L(shl_2_end)
 
201
+       jb      L(shl_2_end)
 
202
 
 
203
        movdqa  16(%eax, %edi), %xmm2
 
204
        sub     $32, %ecx
 
205
@@ -471,6 +477,8 @@ L(shl_2_end):
 
206
        POP (%edi)
 
207
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
208
 
 
209
+       cfi_restore_state
 
210
+       cfi_remember_state
 
211
        ALIGN (4)
 
212
 L(shl_3):
 
213
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
214
@@ -492,7 +500,7 @@ L(shl_3_loop):
 
215
        movdqa  %xmm2, -32(%edx, %edi)
 
216
        movdqa  %xmm3, -16(%edx, %edi)
 
217
 
 
218
-       jl      L(shl_3_end)
 
219
+       jb      L(shl_3_end)
 
220
 
 
221
        movdqa  16(%eax, %edi), %xmm2
 
222
        sub     $32, %ecx
 
223
@@ -514,6 +522,8 @@ L(shl_3_end):
 
224
        POP (%edi)
 
225
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
226
 
 
227
+       cfi_restore_state
 
228
+       cfi_remember_state
 
229
        ALIGN (4)
 
230
 L(shl_4):
 
231
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
232
@@ -535,7 +545,7 @@ L(shl_4_loop):
 
233
        movdqa  %xmm2, -32(%edx, %edi)
 
234
        movdqa  %xmm3, -16(%edx, %edi)
 
235
 
 
236
-       jl      L(shl_4_end)
 
237
+       jb      L(shl_4_end)
 
238
 
 
239
        movdqa  16(%eax, %edi), %xmm2
 
240
        sub     $32, %ecx
 
241
@@ -557,6 +567,8 @@ L(shl_4_end):
 
242
        POP (%edi)
 
243
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
244
 
 
245
+       cfi_restore_state
 
246
+       cfi_remember_state
 
247
        ALIGN (4)
 
248
 L(shl_5):
 
249
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
250
@@ -578,7 +590,7 @@ L(shl_5_loop):
 
251
        movdqa  %xmm2, -32(%edx, %edi)
 
252
        movdqa  %xmm3, -16(%edx, %edi)
 
253
 
 
254
-       jl      L(shl_5_end)
 
255
+       jb      L(shl_5_end)
 
256
 
 
257
        movdqa  16(%eax, %edi), %xmm2
 
258
        sub     $32, %ecx
 
259
@@ -600,7 +612,8 @@ L(shl_5_end):
 
260
        POP (%edi)
 
261
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
262
 
 
263
-
 
264
+       cfi_restore_state
 
265
+       cfi_remember_state
 
266
        ALIGN (4)
 
267
 L(shl_6):
 
268
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
269
@@ -622,7 +635,7 @@ L(shl_6_loop):
 
270
        movdqa  %xmm2, -32(%edx, %edi)
 
271
        movdqa  %xmm3, -16(%edx, %edi)
 
272
 
 
273
-       jl      L(shl_6_end)
 
274
+       jb      L(shl_6_end)
 
275
 
 
276
        movdqa  16(%eax, %edi), %xmm2
 
277
        sub     $32, %ecx
 
278
@@ -644,6 +657,8 @@ L(shl_6_end):
 
279
        POP (%edi)
 
280
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
281
 
 
282
+       cfi_restore_state
 
283
+       cfi_remember_state
 
284
        ALIGN (4)
 
285
 L(shl_7):
 
286
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
287
@@ -665,7 +680,7 @@ L(shl_7_loop):
 
288
        movdqa  %xmm2, -32(%edx, %edi)
 
289
        movdqa  %xmm3, -16(%edx, %edi)
 
290
 
 
291
-       jl      L(shl_7_end)
 
292
+       jb      L(shl_7_end)
 
293
 
 
294
        movdqa  16(%eax, %edi), %xmm2
 
295
        sub     $32, %ecx
 
296
@@ -687,6 +702,8 @@ L(shl_7_end):
 
297
        POP (%edi)
 
298
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
299
 
 
300
+       cfi_restore_state
 
301
+       cfi_remember_state
 
302
        ALIGN (4)
 
303
 L(shl_8):
 
304
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
305
@@ -708,7 +725,7 @@ L(shl_8_loop):
 
306
        movdqa  %xmm2, -32(%edx, %edi)
 
307
        movdqa  %xmm3, -16(%edx, %edi)
 
308
 
 
309
-       jl      L(shl_8_end)
 
310
+       jb      L(shl_8_end)
 
311
 
 
312
        movdqa  16(%eax, %edi), %xmm2
 
313
        sub     $32, %ecx
 
314
@@ -730,6 +747,8 @@ L(shl_8_end):
 
315
        POP (%edi)
 
316
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
317
 
 
318
+       cfi_restore_state
 
319
+       cfi_remember_state
 
320
        ALIGN (4)
 
321
 L(shl_9):
 
322
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
323
@@ -751,7 +770,7 @@ L(shl_9_loop):
 
324
        movdqa  %xmm2, -32(%edx, %edi)
 
325
        movdqa  %xmm3, -16(%edx, %edi)
 
326
 
 
327
-       jl      L(shl_9_end)
 
328
+       jb      L(shl_9_end)
 
329
 
 
330
        movdqa  16(%eax, %edi), %xmm2
 
331
        sub     $32, %ecx
 
332
@@ -773,6 +792,8 @@ L(shl_9_end):
 
333
        POP (%edi)
 
334
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
335
 
 
336
+       cfi_restore_state
 
337
+       cfi_remember_state
 
338
        ALIGN (4)
 
339
 L(shl_10):
 
340
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
341
@@ -794,7 +815,7 @@ L(shl_10_loop):
 
342
        movdqa  %xmm2, -32(%edx, %edi)
 
343
        movdqa  %xmm3, -16(%edx, %edi)
 
344
 
 
345
-       jl      L(shl_10_end)
 
346
+       jb      L(shl_10_end)
 
347
 
 
348
        movdqa  16(%eax, %edi), %xmm2
 
349
        sub     $32, %ecx
 
350
@@ -816,6 +837,8 @@ L(shl_10_end):
 
351
        POP (%edi)
 
352
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
353
 
 
354
+       cfi_restore_state
 
355
+       cfi_remember_state
 
356
        ALIGN (4)
 
357
 L(shl_11):
 
358
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
359
@@ -837,7 +860,7 @@ L(shl_11_loop):
 
360
        movdqa  %xmm2, -32(%edx, %edi)
 
361
        movdqa  %xmm3, -16(%edx, %edi)
 
362
 
 
363
-       jl      L(shl_11_end)
 
364
+       jb      L(shl_11_end)
 
365
 
 
366
        movdqa  16(%eax, %edi), %xmm2
 
367
        sub     $32, %ecx
 
368
@@ -859,6 +882,8 @@ L(shl_11_end):
 
369
        POP (%edi)
 
370
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
371
 
 
372
+       cfi_restore_state
 
373
+       cfi_remember_state
 
374
        ALIGN (4)
 
375
 L(shl_12):
 
376
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
377
@@ -880,7 +905,7 @@ L(shl_12_loop):
 
378
        movdqa  %xmm2, -32(%edx, %edi)
 
379
        movdqa  %xmm3, -16(%edx, %edi)
 
380
 
 
381
-       jl      L(shl_12_end)
 
382
+       jb      L(shl_12_end)
 
383
 
 
384
        movdqa  16(%eax, %edi), %xmm2
 
385
        sub     $32, %ecx
 
386
@@ -902,6 +927,8 @@ L(shl_12_end):
 
387
        POP (%edi)
 
388
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
389
 
 
390
+       cfi_restore_state
 
391
+       cfi_remember_state
 
392
        ALIGN (4)
 
393
 L(shl_13):
 
394
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
395
@@ -923,7 +950,7 @@ L(shl_13_loop):
 
396
        movdqa  %xmm2, -32(%edx, %edi)
 
397
        movdqa  %xmm3, -16(%edx, %edi)
 
398
 
 
399
-       jl      L(shl_13_end)
 
400
+       jb      L(shl_13_end)
 
401
 
 
402
        movdqa  16(%eax, %edi), %xmm2
 
403
        sub     $32, %ecx
 
404
@@ -945,6 +972,8 @@ L(shl_13_end):
 
405
        POP (%edi)
 
406
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
407
 
 
408
+       cfi_restore_state
 
409
+       cfi_remember_state
 
410
        ALIGN (4)
 
411
 L(shl_14):
 
412
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
413
@@ -966,7 +995,7 @@ L(shl_14_loop):
 
414
        movdqa  %xmm2, -32(%edx, %edi)
 
415
        movdqa  %xmm3, -16(%edx, %edi)
 
416
 
 
417
-       jl      L(shl_14_end)
 
418
+       jb      L(shl_14_end)
 
419
 
 
420
        movdqa  16(%eax, %edi), %xmm2
 
421
        sub     $32, %ecx
 
422
@@ -988,7 +1017,8 @@ L(shl_14_end):
 
423
        POP (%edi)
 
424
        BRANCH_TO_JMPTBL_ENTRY_TAIL(L(table_48bytes_fwd), %ecx, 4)
 
425
 
 
426
-
 
427
+       cfi_restore_state
 
428
+       cfi_remember_state
 
429
        ALIGN (4)
 
430
 L(shl_15):
 
431
        BRANCH_TO_JMPTBL_ENTRY_VALUE(L(table_48bytes_fwd))
 
432
@@ -1010,7 +1040,7 @@ L(shl_15_loop):
 
433
        movdqa  %xmm2, -32(%edx, %edi)
 
434
        movdqa  %xmm3, -16(%edx, %edi)
 
435
 
 
436
-       jl      L(shl_15_end)
 
437
+       jb      L(shl_15_end)
 
438
 
 
439
        movdqa  16(%eax, %edi), %xmm2
 
440
        sub     $32, %ecx
 
441
@@ -1229,8 +1259,10 @@ L(fwd_write_3bytes):
 
442
        movl    DEST(%esp), %eax
 
443
 # endif
 
444
 #endif
 
445
-       RETURN
 
446
+       RETURN_END
 
447
 
 
448
+       cfi_restore_state
 
449
+       cfi_remember_state
 
450
        ALIGN (4)
 
451
 L(large_page):
 
452
        movdqu  (%eax), %xmm1
 
453
@@ -1281,7 +1313,7 @@ L(large_page_loop):
 
454
        sub     $0x40, %ecx
 
455
 L(large_page_less_64bytes):
 
456
        cmp     $32, %ecx
 
457
-       jl      L(large_page_less_32bytes)
 
458
+       jb      L(large_page_less_32bytes)
 
459
        movdqu  (%eax), %xmm0
 
460
        movdqu  0x10(%eax), %xmm1
 
461
        lea     0x20(%eax), %eax
 
462
@@ -1617,11 +1649,11 @@ L(copy_backward):
 
463
 
 
464
 L(bk_aligned_4):
 
465
        cmp     $64, %ecx
 
466
-       jge     L(bk_write_more64bytes)
 
467
+       jae     L(bk_write_more64bytes)
 
468
 
 
469
 L(bk_write_64bytesless):
 
470
        cmp     $32, %ecx
 
471
-       jl      L(bk_write_less32bytes)
 
472
+       jb      L(bk_write_less32bytes)
 
473
 
 
474
 L(bk_write_more32bytes):
 
475
        /* Copy 32 bytes at a time.  */
 
476
@@ -1653,10 +1685,11 @@ L(bk_write_less32bytes):
 
477
 L(bk_write_less32bytes_2):
 
478
        BRANCH_TO_JMPTBL_ENTRY (L(table_48_bytes_bwd), %ecx, 4)
 
479
 
 
480
+       CFI_PUSH (%esi)
 
481
        ALIGN (4)
 
482
 L(bk_align):
 
483
        cmp     $8, %ecx
 
484
-       jle     L(bk_write_less32bytes)
 
485
+       jbe     L(bk_write_less32bytes)
 
486
        testl   $1, %edx
 
487
        /* We get here only if (EDX & 3 ) != 0 so if (EDX & 1) ==0,
 
488
           then (EDX & 2) must be != 0.  */
 
489
@@ -1712,7 +1745,7 @@ L(bk_ssse3_align):
 
490
 
 
491
 L(bk_ssse3_cpy_pre):
 
492
        cmp     $64, %ecx
 
493
-       jl      L(bk_write_more32bytes)
 
494
+       jb      L(bk_write_more32bytes)
 
495
 
 
496
 L(bk_ssse3_cpy):
 
497
        sub     $64, %esi
 
498
@@ -1727,7 +1760,7 @@ L(bk_ssse3_cpy):
 
499
        movdqu  (%esi), %xmm0
 
500
        movdqa  %xmm0, (%edx)
 
501
        cmp     $64, %ecx
 
502
-       jge     L(bk_ssse3_cpy)
 
503
+       jae     L(bk_ssse3_cpy)
 
504
        jmp     L(bk_write_64bytesless)
 
505
 
 
506
 #endif
 
507
-- 
 
508
1.7.3.4
 
509