Bug 1064459

Summary: sigsegv when argument to logging contains an "%s"
Product: [Fedora] Fedora Reporter: Miroslav Suchý <msuchy>
Component: hawkeyAssignee: Ales Kozumplik <akozumpl>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: akozumpl, jzeleny, pnemade
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: hawkey-0.4.11-1.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-25 07:49:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Dumped core none

Description Miroslav Suchý 2014-02-12 16:22:01 UTC
Created attachment 862413 [details]
Dumped core

Description of problem:
I have following code:
#!/usr/bin/python
import hawkey

sack = hawkey.Sack()
path = '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s'
repo = hawkey.Repo("experimental")
repo.repomd_fn = path.format("repomd.xml")
repo.primary_fn = path.format("8e1d95e4dfff428a795610ca63f84a3cb6b8e8753ae08766cae1165d3ee74982-primary.xml.gz")
sack.load_yum_repo(repo, load_filelists=False)
len(sack)

where content of rhscl-1.1-rhel-6-candidate-perl516 is identical to:
http://people.redhat.com/~msuchy/rhscl-1.1-rhel-6-candidate-perl516/

And when I execute it, I get core dump.


Version-Release number of selected component (if applicable):
$ rpm -qa |grep hawkey
hawkey-debuginfo-0.4.9-1.fc20.x86_64
python-hawkey-0.4.9-1.fc20.x86_64
hawkey-0.4.9-1.fc20.x86_64
python3-hawkey-0.4.9-1.fc20.x86_64

How reproducible:
always



Additional info:
Backtrace from gdb:
#0  0x0000003e93c4908f in vfprintf () from /lib64/libc.so.6
#1  0x0000003e93d044b5 in __vsnprintf_chk () from /lib64/libc.so.6
#2  0x000000313762d92b in pool_debug () from /lib64/libsolv.so.0
#3  0x00007f21def476a8 in sack_log (sack=sack@entry=0xb55830, level=level@entry=2097152, 
    format=format@entry=0x7f21def49f68 "can not read repomd %s: %s") at /usr/src/debug/hawkey/py3/src/sack.c:919
#4  0x00007f21def48780 in load_yum_repo (hrepo=0xa824f0, sack=0xb55830) at /usr/src/debug/hawkey/py3/src/sack.c:452
#5  hy_sack_load_yum_repo (sack=0xb55830, repo=0xa824f0, flags=flags@entry=0) at /usr/src/debug/hawkey/py3/src/sack.c:826
#6  0x00007f21df15921e in load_yum_repo (self=0x7f21e58b59b8, args=<optimized out>, kwds=<optimized out>)
    at /usr/src/debug/hawkey/src/python/sack-py.c:417
#7  0x00000033d5ae114d in do_call (nk=<optimized out>, na=1, pp_stack=0x7fff2cf2ba40, 
    func=<built-in method load_yum_repo of _hawkey.Sack object at remote 0x7f21e58b59b8>) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4313
#8  call_function (oparg=<optimized out>, pp_stack=0x7fff2cf2ba40) at /usr/src/debug/Python-2.7.5/Python/ceval.c:4121
#9  PyEval_EvalFrameEx (f=f@entry=Frame 0xb30580, for file ./hawkey-test.py, line 11, in <module> (), throwflag=throwflag@entry=0)
    at /usr/src/debug/Python-2.7.5/Python/ceval.c:2740
#10 0x00000033d5ae229d in PyEval_EvalCodeEx (co=co@entry=0x7f21e5901930, 
    globals=globals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, 
    locals=locals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, args=args@entry=0x0, argcount=argcount@entry=0, 
    kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, closure=closure@entry=0x0)
    at /usr/src/debug/Python-2.7.5/Python/ceval.c:3330
#11 0x00000033d5ae23a2 in PyEval_EvalCode (co=co@entry=0x7f21e5901930, 
    globals=globals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, 
    locals=locals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}) at /usr/src/debug/Python-2.7.5/Python/ceval.c:689
#12 0x00000033d5afb7ef in run_mod (mod=<optimized out>, filename=filename@entry=0x7fff2cf2df4b "./hawkey-test.py", 
    globals=globals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, 
    locals=locals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, flags=flags@entry=0x7fff2cf2bca0, 
    arena=arena@entry=0xa75090) at /usr/src/debug/Python-2.7.5/Python/pythonrun.c:1373
#13 0x00000033d5afc9ae in PyRun_FileExFlags (fp=fp@entry=0xb30560, filename=filename@entry=0x7fff2cf2df4b "./hawkey-test.py", 
    start=start@entry=257, 
    globals=globals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, 
    locals=locals@entry={'__builtins__': <module at remote 0x7f21e597eb08>, '__file__': './hawkey-test.py', 'sack': <_hawkey.Sack at remote 0x7f21e58b59b8>, '__package__': None, 'repo': <_hawkey.Repo at remote 0x7f21e593e150>, 'hawkey': <module at remote 0x7f21e58b7c20>, '__name__': '__main__', 'path': '/home/msuchy/rhscl-1.1-rhel-6-candidate-perl516/repodata/%s', '__doc__': None}, closeit=closeit@entry=1, 
    flags=flags@entry=0x7fff2cf2bca0) at /usr/src/debug/Python-2.7.5/Python/pythonrun.c:1359
#14 0x00000033d5afdc39 in PyRun_SimpleFileExFlags (fp=fp@entry=0xb30560, filename=filename@entry=0x7fff2cf2df4b "./hawkey-test.py", 
    closeit=closeit@entry=1, flags=flags@entry=0x7fff2cf2bca0) at /usr/src/debug/Python-2.7.5/Python/pythonrun.c:951
#15 0x00000033d5afe163 in PyRun_AnyFileExFlags (fp=fp@entry=0xb30560, filename=filename@entry=0x7fff2cf2df4b "./hawkey-test.py", 
    closeit=closeit@entry=1, flags=flags@entry=0x7fff2cf2bca0) at /usr/src/debug/Python-2.7.5/Python/pythonrun.c:755
#16 0x00000033d5b0ec4f in Py_Main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/Python-2.7.5/Modules/main.c:640
#17 0x0000003e93c21d65 in __libc_start_main () from /lib64/libc.so.6
#18 0x0000000000400721 in _start ()

Comment 1 Miroslav Suchý 2014-02-12 16:23:49 UTC
Hmm /lib64/libsolv.so.0 is at the top. So this should go likely to libsolv package. Reassigning.

Comment 2 Ales Kozumplik 2014-02-12 17:25:17 UTC
Fixed by dcb5910, thanks for the report.

Comment 3 Miroslav Suchý 2014-02-13 10:42:37 UTC
I can confirm that it really resolve this bug. Thanks.

Comment 4 Fedora Update System 2014-02-17 14:37:21 UTC
hawkey-0.4.10-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/hawkey-0.4.10-1.fc20

Comment 5 Fedora Update System 2014-02-18 13:44:44 UTC
Package hawkey-0.4.10-1.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing hawkey-0.4.10-1.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-2700/hawkey-0.4.10-1.fc20
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2014-02-24 17:52:58 UTC
hawkey-0.4.11-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/hawkey-0.4.11-1.fc20

Comment 7 Fedora Update System 2014-02-25 07:49:39 UTC
hawkey-0.4.10-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 8 Fedora Update System 2014-02-27 04:13:39 UTC
hawkey-0.4.11-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.