Skip to content

Commit 5136823

Browse files
Release 3.10.0beta2
2 parents 716c67d + df7c1fe commit 5136823

File tree

5 files changed

+23
-5
lines changed

5 files changed

+23
-5
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ The table below shows which release corresponds to each branch, and what date th
1111
| ---------------- | -------- | ---------------------- |
1212
| [3.11.0](#3110) | `dev` | Dec 2, 2017 (planned)
1313
| [3.10.0](#3100) | `beta` | Oct 21, 2017 (planned)
14-
| [3.9.1](#391) | `stable` | Sep 28, 2017
14+
| [3.9.2](#392) | `stable` | Oct 5, 2017
15+
| [3.9.1](#391) | | Sep 28, 2017
1516
| [3.9.0](#390) | | Sep 11, 2017
1617
| [3.8.0](#380) | | Jul 29, 2017
1718
| [3.7.1](#371) | | Jul 14, 2017
@@ -46,6 +47,12 @@ To be released on Dec 2, 2017.
4647

4748
To be released on Oct 21, 2017.
4849

50+
## 3.9.2
51+
52+
- [#1043][1043] Do not attempt to populate the libraries used by statically-linked binaries
53+
54+
[1043]: https://github.com/Gallopsled/pwntools/pull/1043
55+
4956
## 3.9.1
5057

5158
- [#1038][1038] Fix an issue with `process()` where glibc would buffer data internally, causing a hang on `select()`

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
![pwntools logo](https://github.com/Gallopsled/pwntools/blob/stable/docs/source/logo.png?raw=true)
33

44
[![Docs](https://readthedocs.org/projects/pwntools/badge/?version=stable)](https://docs.pwntools.com/)
5-
[![PyPI](https://img.shields.io/badge/pypi-v3.9.1-green.svg?style=flat)](https://pypi.python.org/pypi/pwntools/)
5+
[![PyPI](https://img.shields.io/badge/pypi-v3.9.2-green.svg?style=flat)](https://pypi.python.org/pypi/pwntools/)
66
[![Travis](https://travis-ci.org/Gallopsled/pwntools.svg)](https://travis-ci.org/Gallopsled/pwntools)
77
[![Coveralls](https://img.shields.io/coveralls/Gallopsled/pwntools/dev.svg)](https://coveralls.io/github/Gallopsled/pwntools?branch=dev)
88
[![Twitter](https://img.shields.io/badge/twitter-pwntools-4099FF.svg?style=flat)](https://twitter.com/pwntools)

pwnlib/elf/elf.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
from elftools.elf.gnuversions import GNUVerDefSection
5656
from elftools.elf.relocation import RelocationSection
5757
from elftools.elf.sections import SymbolTableSection
58+
from elftools.elf.segments import InterpSegment
5859

5960
import intervaltree
6061

@@ -605,10 +606,20 @@ def _populate_libraries(self):
605606
>>> any(map(lambda x: 'libc' in x, bash.libs.keys()))
606607
True
607608
"""
608-
if not self.get_section_by_name('.dynamic'):
609+
610+
# We need a .dynamic section for dynamically linked libraries
611+
if not self.get_section_by_name('.dynamic') or self.statically_linked:
609612
self.libs= {}
610613
return
611614

615+
# We must also specify a 'PT_INTERP', otherwise it's a 'statically-linked'
616+
# binary which is also position-independent (and as such has a .dynamic).
617+
for segment in self.iter_segments_by_type('PT_INTERP'):
618+
break
619+
else:
620+
self.libs = {}
621+
return
622+
612623
try:
613624
cmd = 'ulimit -s unlimited; LD_TRACE_LOADED_OBJECTS=1 LD_WARN=1 LD_BIND_NOW=1 %s 2>/dev/null' % sh_string(self.path)
614625

pwnlib/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '3.10.0beta1'
1+
__version__ = '3.10.0beta2'

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
setup(
8787
name = 'pwntools',
8888
packages = find_packages(),
89-
version = '3.10.0beta1',
89+
version = '3.10.0beta2',
9090
data_files = [('',
9191
glob.glob('*.md') + glob.glob('*.txt')),
9292
],

0 commit comments

Comments
 (0)