mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* addr2line.c (fill_lines): need check and cast of the file size of
target binary because there are some platforms which off_t > size_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4259d23588
commit
9bae83f89f
2 changed files with 13 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Tue Aug 21 17:29:56 2012 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
|
* addr2line.c (fill_lines): need check and cast of the file size of
|
||||||
|
target binary because there are some platforms which off_t > size_t.
|
||||||
|
|
||||||
Tue Aug 21 17:07:58 2012 URABE Shyouhei <shyouhei@ruby-lang.org>
|
Tue Aug 21 17:07:58 2012 URABE Shyouhei <shyouhei@ruby-lang.org>
|
||||||
|
|
||||||
* .travis.yml (compiler): [experimental] clang support.
|
* .travis.yml (compiler): [experimental] clang support.
|
||||||
|
|
11
addr2line.c
11
addr2line.c
|
@ -1,6 +1,6 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
|
||||||
addr2line.h -
|
addr2line.c -
|
||||||
|
|
||||||
$Author$
|
$Author$
|
||||||
|
|
||||||
|
@ -458,9 +458,14 @@ fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,
|
||||||
fprintf(stderr, "lseek: %s\n", strerror(e));
|
fprintf(stderr, "lseek: %s\n", strerror(e));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (filesize > SIZE_MAX) {
|
||||||
|
close(fd);
|
||||||
|
fprintf(stderr, "Too large file %s\n", binary_filename);
|
||||||
|
return;
|
||||||
|
}
|
||||||
lseek(fd, 0, SEEK_SET);
|
lseek(fd, 0, SEEK_SET);
|
||||||
/* async-signal unsafe */
|
/* async-signal unsafe */
|
||||||
file = (char *)mmap(NULL, filesize, PROT_READ, MAP_SHARED, fd, 0);
|
file = (char *)mmap(NULL, (size_t)filesize, PROT_READ, MAP_SHARED, fd, 0);
|
||||||
if (file == MAP_FAILED) {
|
if (file == MAP_FAILED) {
|
||||||
int e = errno;
|
int e = errno;
|
||||||
close(fd);
|
close(fd);
|
||||||
|
@ -470,7 +475,7 @@ fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,
|
||||||
|
|
||||||
current_line->fd = fd;
|
current_line->fd = fd;
|
||||||
current_line->mapped = file;
|
current_line->mapped = file;
|
||||||
current_line->mapped_size = filesize;
|
current_line->mapped_size = (size_t)filesize;
|
||||||
|
|
||||||
for (i = 0; i < num_traces; i++) {
|
for (i = 0; i < num_traces; i++) {
|
||||||
const char *path;
|
const char *path;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue