sysutils/logrotate 3.8.8 causes a segmentation fault. SVN r450 upstream introduced sortGlobResult, which uses qsort_r. Linux and FreeBSD have different implementations of this function: Linux: void qsort_r(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *arg); FreeBSD: void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *)); Note differences in location of thunk/arg and compar function pointer. Proposed patch attached.
Maintainer CC'd
Created attachment 151520 [details] qsort_r patch
First off, well done, good catch. I'd use tab indentation instead of the two spaces, that's all. Here we don't have to maintain cross-platform functionality, nevertheless it would be a good idea to report this problem upstream too.
Issue will be resolved upstream in 3.8.9. See https://fedorahosted.org/logrotate/ticket/48 for details.
Created attachment 153206 [details] Update port to version 3.8.9 Update port to version 3.8.9. While here fix some portlint warnings.
My patch tested with poudriere on i386/amd64: http://citrin.ru/tmp/logrotate-3.8.9-poudriere-logs.tgz
Anton, This is wonderful. I couldn't set up a VM to test it out yet, but this is unrelated to this bug. Maybe we should build this port by its supported way, running autogen.sh, configure, and make.
FreeBSD ports has broken logrotate version for a very long time. This affects many FreeBSD users. I think port first should be updated to 3.8.9 and only then changed to running autogen.sh is this way has visible advantages.
I tried both Jason's patch to 3.8.8 and Anton's upgrade to 3.8.9, and both work well for me (segfault is gone). Jul, I'd urge going ahead with the 3.8.9 upgrade and plan on moving to the supported build at a later time. The port as it stands now is broken. Thanks, Doug
Maintainer approved, will commit after some final testing.
Committed. Thanks!
A commit references this bug: Author: madpilot Date: Thu May 14 07:51:11 UTC 2015 New revision: 386301 URL: https://svnweb.freebsd.org/changeset/ports/386301 Log: - Update to 3.8.9 - Add LICENSE - Use @sample in plist - While here, regenerate patches to silence portlint warnings PR: 196668 Submitted by: jyoung15 at gmail.com Approved by: Balazs Nagy <js at iksz.hu> (maintainer) Changes: head/sysutils/logrotate/Makefile head/sysutils/logrotate/distinfo head/sysutils/logrotate/files/patch-Makefile head/sysutils/logrotate/files/patch-config.c head/sysutils/logrotate/files/patch-config.h head/sysutils/logrotate/files/patch-logrotate.8 head/sysutils/logrotate/files/patch-logrotate.c head/sysutils/logrotate/pkg-plist