FS#33911 - segfault when using "pacman -U http:///" on a file already in the cache

Attached to Project: Pacman
Opened by Allan McRae (Allan) - Monday, 18 February 2013, 00:47 GMT
Last edited by Allan McRae (Allan) - Sunday, 24 February 2013, 03:12 GMT
Task Type Bug Report
Category Backend/Core
Status Closed
Assigned To Dave Reisner (falconindy)
Architecture All
Severity Critical
Priority Normal
Reported Version git
Due in Version 4.1.0
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

For example:

> pacman -U http://arm.konnichi.com/2013/02/01/testing/os/i686/cairo-1.12.12-1-i686.pkg.tar.xz

error: segmentation fault
Please submit a full bug report with --debug if appropriate.


Removing the file "cairo-1.12.12-1-i686.pkg.tar.xz" from the package cache makes it succeed.
This task depends upon

Closed by  Allan McRae (Allan)
Sunday, 24 February 2013, 03:12 GMT
Reason for closing:  Fixed
Additional comments about closing:  git commit 3d142fe8
Comment by Dave Reisner (falconindy) - Monday, 18 February 2013, 01:07 GMT
Wat no backtrace?

This seems weird. The filecache find logic should prevail here
Comment by Allan McRae (Allan) - Monday, 18 February 2013, 01:21 GMT
backtrace... "-O2 -g"
Comment by Allan McRae (Allan) - Monday, 18 February 2013, 01:31 GMT
Ah... nice bug!

dload.c:673 - pacman finds the package in the cache so does not download
dload.c:691 - attempts to download the required signature

However, because the package was not downloaded, _alpm_download is not called and so the final_file, final_pkg_url variables are unset.

strlen(NULL) -> segfault...

Loading...