Serhiy Storchaka
13ea0c5d9c
Fixed an infinite loop in zipimport caused by cebcd2fd3e1f (issue #19883 ).
2016-01-29 00:37:28 +02:00
Serhiy Storchaka
c4ef384d13
Issue #19883 : Fixed possible integer overflows in zipimport.
2016-01-28 21:32:53 +02:00
Benjamin Peterson
5640bbb6c5
reject negative data_size
2016-01-21 22:02:46 -08:00
Benjamin Peterson
64ea192b73
prevent buffer overflow in get_data ( closes #26171 )
2016-01-20 22:23:44 -08:00
Benjamin Peterson
e4309f7f14
fix refleak in error condition
2016-01-20 22:06:43 -08:00
Benjamin Peterson
384e9cb3a1
finish backing out #19081
2014-02-16 14:46:57 -05:00
Benjamin Peterson
e9aab0fb98
backout #19081 to fix #20621
2014-02-16 14:20:14 -05:00
Gregory P. Smith
aaef0e7821
Remove inaccurate comment and a the related recently added
...
Py_VerboseFlag print that can never be triggered.
prefix[0] is always equal to 0 at this point in the code.
2014-01-27 22:43:25 -08:00
Gregory P. Smith
027ab39014
Issue #19081 : Remove the zipimporter.files reference as the zip TOC
...
caches are module global in the zip_directory_cache. When it is
updated due to a changed zip file, all zipimporter instances need to
see the same updates TOC cache. This fixes the bug for the overlooked
submodule import case from the earlier round of changes. Includes
tests that would fail otherwise.
It also refactors zipimporter_init in the process to make it a bit
easier to read and understand. Less reuse of the same variable for
multiple purposes and the local path buffer is malloc'ed instead
of consuming a large MAXPATHLEN+2 chunk stack space.
2014-01-27 00:15:10 -08:00
Benjamin Peterson
7251fe10ff
fix zipimport ref leak
2014-01-09 09:36:10 -06:00
Gregory P. Smith
6de7260877
cleanup for the issue 19081 fix - pull the file open and close outside of the
...
zip_searchorder scanning loop in get_module_code().
[already done in 3.3 and 3.4]
2014-01-07 18:39:48 -08:00
Gregory P. Smith
ad3e72557c
Should fix the issue19081 fix on Windows. Don't let the previous
...
posix module ImportError cause the nt module import to fail.
2014-01-07 01:11:09 -08:00
Gregory P. Smith
b48c5d5107
Fixes issue19081: When a zipimport .zip file in sys.path being imported
...
from is modified during the lifetime of the Python process after
zipimport has already opened and cached the zip's table of contents
it now fstat's the file after opening it upon every attempt to access
anything within and will re-read the table of contents if the .zip file
inode, size or mtime have changed.
It would've been nicer to hold any .zip file used by zipimport open for the
duration of the process but that would be more invasive and add an additional
open file descriptor to all zipimport using processes. It also would likely
not fix the problem on Windows due to different filesystem semantics.
2014-01-06 09:46:46 -08:00
Jesus Cea
e884be67bd
Closes #15897 : zipimport.c doesn't check return value of fseek()
2012-10-03 02:13:05 +02:00
Victor Stinner
f58f1c33c1
Issue #12124 : zipimport doesn't keep a reference to zlib.decompress() anymore
...
to be able to unload the module.
2011-05-21 02:13:22 +02:00
Ezio Melotti
c2077b0d9b
#11565 : Fix several typos. Patch by Piotr Kasprzyk.
2011-03-16 12:34:31 +02:00
Ezio Melotti
24b07bcba3
#11515 : fix several typos. Patch by Piotr Kasprzyk.
2011-03-15 18:55:01 +02:00
Brian Curtin
13b43e70e2
Fix #9316 . if/is grammar corrections.
2010-07-21 01:35:46 +00:00
Antoine Pitrou
c83ea137d7
Untabify C files. Will watch buildbots.
2010-05-09 14:46:46 +00:00
Nick Coghlan
0194f5bc98
Issue #4512 closeout: Make ZipImport.get_filename() a public method
2009-02-08 03:17:00 +00:00
Nick Coghlan
a2053475bb
Fix several issues relating to access to source code inside zipfiles. Initial work by Alexander Belopolsky. See Misc/NEWS in this checkin for details.
2008-12-14 10:54:50 +00:00
Gregory P. Smith
dd96db63f6
This reverts r63675 based on the discussion in this thread:
...
http://mail.python.org/pipermail/python-dev/2008-June/079988.html
Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names
in the spirit of 3.0 are available via a #define only. See the email thread.
2008-06-09 04:58:54 +00:00
Christian Heimes
593daf545b
Renamed PyString to PyBytes
2008-05-26 12:51:38 +00:00
Georg Brandl
6a57c08dc8
#1326 : document and test zipimporter.archive and zipimporter.prefix.
2008-05-11 15:05:13 +00:00
Christian Heimes
62a8e95fea
Coverity issue CID #197
...
var_decl: Declared variable "stm" without initializer
ninit_use_in_call: Using uninitialized value "stm" (field "stm".tm_zone uninitialized) in call to function "mktime"
2008-01-18 07:30:20 +00:00
Christian Heimes
000a074c95
Modified PyImport_Import and PyImport_ImportModule to always use absolute imports by calling __import__ with an explicit level of 0
...
Added a new API function PyImport_ImportModuleNoBlock. It solves the problem with dead locks when mixing threads and imports
2008-01-03 22:16:32 +00:00
Christian Heimes
e93237dfcc
#1629 : Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
2007-12-19 02:37:44 +00:00
Martin v. Löwis
6819210b9e
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
...
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
2007-07-21 06:55:02 +00:00
Neal Norwitz
ee7c8f9af8
It's very unlikely, though possible that source is not a string. Verify
...
that PyString_AsString() returns a valid pointer. (The problem can
arise when zlib.decompress doesn't return a string.)
Klocwork 346
2006-08-13 18:12:03 +00:00
Thomas Wouters
c6e55068ca
Use Py_VISIT in all tp_traverse methods, instead of traversing manually or
...
using a custom, nearly-identical macro. This probably changes how some of
these functions are compiled, which may result in fractionally slower (or
faster) execution. Considering the nature of traversal, visiting much of the
address space in unpredictable patterns, I'd argue the code readability and
maintainability is well worth it ;P
2006-04-15 21:47:09 +00:00
Anthony Baxter
d6495b5944
remove forward declarations. No constructors to move for these files. Makes
...
code work with C++ compilers.
2006-04-12 04:29:01 +00:00
Hye-Shik Chang
4af5c8cee4
SF #1444030 : Fix several potential defects found by Coverity.
...
(reviewed by Neal Norwitz)
2006-03-07 15:39:21 +00:00
Georg Brandl
e9b1949f70
Patch #1352711 : make zipimport raise a complete IOError
2006-02-19 09:38:58 +00:00
Martin v. Löwis
ad0a4629be
Use Py_ssize_t for counts and sizes.
2006-02-16 14:30:23 +00:00
Martin v. Löwis
18e165558b
Merge ssize_t branch.
2006-02-15 17:27:45 +00:00
Fredrik Lundh
b84b35f02a
the implementation uses ZipImportError, not ZipImporterError...
2006-01-15 15:00:40 +00:00
Neal Norwitz
d39d861a36
Fix icc warnings: strlen() returns size_t
2006-01-08 01:03:36 +00:00
Fred Drake
f5b7fd2239
update busted comment
2005-11-11 19:34:56 +00:00
Jeremy Hylton
ec97a28b60
Fix a bunch of imports to use code.h instead of compile.h.
...
Remove duplicate declarations from compile.h
2005-10-21 14:58:06 +00:00
Georg Brandl
02c42871cf
Disallow keyword arguments for type constructors that don't use them.
...
(fixes bug #1119418 )
2005-08-26 06:42:30 +00:00
Raymond Hettinger
2c45c9ae57
SF patch 1062495: Modules/zipimport.c does not compile on solaris
...
(Contributed by Niki W. Waibel.)
Simple renaming to avoid a conflict that prevented compilation on Solaris.
2004-11-10 13:08:35 +00:00
Just van Rossum
ee8f10fa37
Patch #801349 : 64-bit fix for AMD64 from Gwenole Beauchesne.
...
Classical problem with int vs. long mismatch in varargs.
2.3 backport candidate.
2003-09-07 13:36:48 +00:00
Thomas Heller
354e3d90d3
Change the zipimport implementation to accept files containing
...
arbitrary bytes before the actual zip compatible archive. Zipfiles
containing comments at the end of the file are still not supported.
Add a testcase to test_zipimport, and update NEWS.
This closes sf #775637 and sf #669036 .
2003-07-22 18:10:15 +00:00
Jeremy Hylton
032fffefe6
Remove unused variable.
2003-07-17 15:56:07 +00:00
Martin v. Löwis
a94568a753
Patch #734231 : Update RiscOS support. In particular, correct
...
riscospath.extsep, and use os.extsep throughout.
2003-05-10 07:36:56 +00:00
Just van Rossum
547eb42d75
tentative fix for #712322 : modification time stamp checking failed
...
when DST began.
2003-04-08 20:07:15 +00:00
Neal Norwitz
29fd2baf82
Make private function and data static.
2003-03-23 13:21:03 +00:00
Just van Rossum
f4ecc751b1
use proper constant instead of comment (noted by nnorwitz)
2003-02-28 08:54:01 +00:00
Neal Norwitz
0c0aad948a
Fix 64-bit problem, ParseTuple("i") needs C ints; ("l") needs C longs.
...
Use "l" as that *probably* makes more sense (at least to me it does :-)
And the test passes on the alpha.
2003-02-18 03:37:49 +00:00
Neal Norwitz
5c1ba53f8c
Use correct function name to PyArg_ParseTuple("is_package").
...
Fix off-by-1 error in normalize_line_endings():
when *p == '\0' the NUL was copied into q and q was auto-incremented,
the loop was broken out of,
then a newline was appended followed by a NUL.
So the function, in effect, was strcpy() but added two extra chars
which was caught by obmalloc in debug mode, since there was only
room for 1 additional newline.
Get test working under regrtest (added test_main).
2003-02-17 18:05:20 +00:00