1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-15 08:36:13 +01:00
Commit Graph

32 Commits

Author SHA1 Message Date
ila
2f4e479ad1 Restore start symbol check 2024-08-27 11:28:44 +02:00
ila
d80a3b7457 Fix object has no attribute 'dataoff'
`ext_fnhdr` exists only if call `_appendHdr()` once found a very long file name. Without that, impossible to get `ext_fnhdr_data`. It should be safe to leave `ext_fnhdr_data` as None if no `ext_fnhdr` added since later every `hdrs` will be checked for very long file name and if none of them will meet the condition, `ext_fnhdr_data` is not needed at all.
2024-08-27 11:28:44 +02:00
d61b781976 Forbid extracting files with absolute path from 'ar' archives (boo#1122683)
Also fix and modernize the code, add tests.
2024-05-30 14:53:58 +02:00
959d054ec8 Fix whitespace issues in osc.util 2022-09-12 15:44:27 +02:00
6d891d7488 Remove superfluous parens 2022-09-12 13:45:19 +02:00
3296fd8d89 User super() instead of referencing parent classes explicitly 2022-09-12 13:45:19 +02:00
ff63226c2f Properly test for None 2022-09-09 09:33:51 +02:00
229913a77f Clean imports up, drop python 2 fallbacks 2022-07-28 13:17:43 +02:00
Marcus Huewe
674ea78815 Avoid a potential TypeError in util.ArFile.saveTo
If no dir is passed to util.ArFile.saveTo, dir is set to os.getcwd(),
which returns a str. Since self.name is a bytes, the subsequent
os.path.join(dir, self.name) results in a TypeError.
To fix this, use os.getcwdb(), which returns a bytes instead of a
str.
2020-11-22 17:36:17 +01:00
Marcus Huewe
5c19425c9b Use with statement in ArFile.saveTo
This makes sure that the file is closed in case of an exception.
2019-01-15 17:18:50 +01:00
Marcus Huewe
b26a4a967d Raise a ValueError if neither fn nor fh is passed to Ar.__init__
A ValueError is more appropriate because there is no issue with the
ar archive itself. Also, the old codepath never worked because the
fn parameter was missing.
2019-01-15 17:18:50 +01:00
Marcus Huewe
6fdce86fc9 Port the ar module to python3
Since an ar archive can contain arbitary filenames (that is a
filename can be an invalid utf-8 encoding (for instance,
"foo\xff\xffbar")), the ar module provides a bytes only API. A
user can decode filenames as she wishes.
Note: if a "fn" parameter is passed to Ar.__init__ it should be a
bytes (a str is also ok, but then be aware that an ArError's file
attribute might be a str or a bytes).
2019-01-15 17:18:37 +01:00
Marcus Huewe
68cf974c78 Do not mmap the ar archive
There is really no need for a mmap here. Also, the comment in the
docstr does not apply/is nonsense (there is no performance gain).
2019-01-15 17:18:19 +01:00
Marcus Huewe
e12181b11d An ext fn header in an ar file has no mode
Use a dummy mode of 0 in this case (internally, the mode is never
used).
2019-01-15 17:18:19 +01:00
Marcus Huewe
2e45edbe16 Remove superfluous StopIteration exception from the ar module
There is no need to raise a StopIteration exception.
2019-01-15 17:18:19 +01:00
Marcus Huewe
470b187374 Run a small demo when the ar module is invoked as a script
It just prints the ar headers.
2019-01-15 17:18:10 +01:00
Marcus Huewe
5a8baf9b88 - util.ar: do not import StringIO from the cStringIO module
The class ArFile inherits from StringIO but StringIO from cStringIO
is just a function (this got broken by commit 87d354e1a0).
2013-04-22 09:24:48 +02:00
Michal Vyskocil
7f2031558c python3 compatibility: print function
The most visible change in python3 - removal of print statement and all
the crufty
   print >> sys.stderr, foo,

The from __future__ import print_function makes it available in python
2.6
2013-04-16 10:51:41 +02:00
Michal Vyskocil
87d354e1a0 python3 compatibility: import proper modules
Some modules (httplib, StringIO, ...) were renamed in python3. This
patch try to import the proper symbols from python3 and then fallback to
python2 in a case ImportError will appear.

There is one exception, python 2.7 got the io module with StringIO, but
it allow unicode arguments only. Therefor the old module is poked before
new one.
2013-04-16 10:51:18 +02:00
Michal Vyskocil
3a93ac6d10 python3 compatibility: except
changes 'except FooError, fe' to 'except FooError as fe'

available in python 2.6
2013-04-16 10:51:17 +02:00
Marcus Hüwe
4dc6e956c1 - yet another fix for python24... 2009-11-06 21:38:29 +00:00
Marcus Hüwe
9a8579cc35 - fix for python24 2009-11-06 19:24:36 +00:00
Pavol Rusnak
661d927d38 code cleanup 2009-10-20 14:30:15 +00:00
Marcus Hüwe
4bb893a114 - added the following new modules:
* util/packagequery.py: it's used to query a RPM or DEB package. It also contains a
    base class for all package types (PackageQuery())
  * util/debquery.py: query a DEB package (name, version, release, provides, requires etc.)
- adapted util/rpmquery.py to use PackageQuery() as a base class
- minor changes in util/ar.py
2009-09-12 19:02:58 +00:00
Pavol Rusnak
e97c1de936 add more checks when working with mmap.mmap 2009-05-22 14:43:39 +00:00
Pavol Rusnak
0fa507a782 mmap.mmap works differently under windows 2009-05-20 16:42:17 +00:00
Michal Cihar
885c72af77 Fix syntax errors with Python 2.4 (bnc#500968). 2009-05-05 14:07:00 +00:00
Marcus Hüwe
5d27d74ee4 - added __str__() method to the ArFile class
- when rereading a file setup the 'datastructs' again
2009-03-09 11:17:44 +00:00
Marcus Hüwe
2da0f1b737 - added docstring 2009-03-05 02:06:26 +00:00
Marcus Hüwe
141845c324 - added __iter__() method to iterate over an Ar object 2009-03-05 02:00:56 +00:00
Marcus Hüwe
3330cd012c - added licensing information 2009-03-04 22:56:24 +00:00
Marcus Hüwe
3b08741a80 - added ar module: this can be used to read ar archives. This will be used later to extract files from a debian package which uses this format. Currently we only support the GNU format (note: maybe something is still missing but it's sufficient for our needs) 2009-03-04 22:15:11 +00:00