chiark / gitweb /
vim: Update to latest patch
[termux-packages] / packages / proot / src-tracee-mem.c.patch
1 --- PRoot-5.1.0/src/tracee/mem.c        2014-12-15 15:18:11.000000000 +0100
2 +++ src/src/tracee/mem.c        2016-03-20 10:37:46.288702967 +0100
3 @@ -131,6 +131,9 @@
4         /* Copy the bytes in the last word carefully since we have to
5          * overwrite only the relevant ones. */
6  
7 +       /* Clear errno so we won't detect previous syscall failure as ptrace one */
8 +       errno = 0;
9 +
10         word = ptrace(PTRACE_PEEKDATA, tracee->pid, dest + i, NULL);
11         if (errno != 0) {
12                 note(tracee, WARNING, SYSTEM, "ptrace(PEEKDATA)");
13 @@ -236,6 +239,9 @@
14         nb_trailing_bytes = size % sizeof(word_t);
15         nb_full_words     = (size - nb_trailing_bytes) / sizeof(word_t);
16  
17 +       /* Clear errno so we won't detect previous syscall failure as ptrace one */
18 +       errno = 0;
19 +
20         /* Copy one word by one word, except for the last one. */
21         for (i = 0; i < nb_full_words; i++) {
22                 word = ptrace(PTRACE_PEEKDATA, tracee->pid, src + i, NULL);
23 @@ -366,6 +372,9 @@
24         nb_trailing_bytes = max_size % sizeof(word_t);
25         nb_full_words     = (max_size - nb_trailing_bytes) / sizeof(word_t);
26  
27 +       /* Clear errno so we won't detect previous syscall failure as ptrace one */
28 +       errno = 0;
29 +
30         /* Copy one word by one word, except for the last one. */
31         for (i = 0; i < nb_full_words; i++) {
32                 word = ptrace(PTRACE_PEEKDATA, tracee->pid, src + i, NULL);