Skip to content

Commit 961207d

Browse files
committed
Fix view->base pointer overwrite.
1 parent bacab7f commit 961207d

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

thirdparty/libbacktrace/patches/0001-big-files-support.patch

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,26 @@ index 7af66602fd..a7e937667c 100644
1818
{
1919
error_callback (data, "lseek", errno);
2020
return 0;
21-
@@ -74,7 +67,10 @@ backtrace_get_view (struct backtrace_state *state, int descriptor,
21+
@@ -72,9 +65,13 @@ backtrace_get_view (struct backtrace_state *state, int descriptor,
22+
view->len = size;
23+
2224
got = 0;
25+
+ void *ptr = view->base;
2326
while (got < size)
2427
{
2528
- r = read (descriptor, view->base, size - got);
2629
+ uint64_t sz = size - got;
2730
+ if (sz > INT_MAX)
2831
+ sz = INT_MAX;
29-
+ r = _read (descriptor, view->base, sz);
32+
+ r = _read (descriptor, ptr, sz);
3033
if (r < 0)
3134
{
3235
error_callback (data, "read", errno);
33-
@@ -84,6 +80,7 @@ backtrace_get_view (struct backtrace_state *state, int descriptor,
36+
@@ -84,6 +81,7 @@ backtrace_get_view (struct backtrace_state *state, int descriptor,
3437
if (r == 0)
3538
break;
3639
got += (uint64_t) r;
37-
+ view->base += r;
40+
+ ptr += r;
3841
}
3942

4043
if (got < size)

thirdparty/libbacktrace/read.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,13 @@ backtrace_get_view (struct backtrace_state *state, int descriptor,
6565
view->len = size;
6666

6767
got = 0;
68+
void *ptr = view->base;
6869
while (got < size)
6970
{
7071
uint64_t sz = size - got;
7172
if (sz > INT_MAX)
7273
sz = INT_MAX;
73-
r = _read (descriptor, view->base, sz);
74+
r = _read (descriptor, ptr, sz);
7475
if (r < 0)
7576
{
7677
error_callback (data, "read", errno);
@@ -80,7 +81,7 @@ backtrace_get_view (struct backtrace_state *state, int descriptor,
8081
if (r == 0)
8182
break;
8283
got += (uint64_t) r;
83-
view->base += r;
84+
ptr += r;
8485
}
8586

8687
if (got < size)

0 commit comments

Comments
 (0)