Skip to content
Snippets Groups Projects
  1. Jan 04, 2021
  2. Jan 03, 2021
  3. Dec 24, 2020
  4. Dec 05, 2020
  5. Nov 30, 2020
  6. Nov 14, 2020
  7. Aug 28, 2020
  8. Jun 17, 2020
  9. Jun 16, 2020
  10. Jun 15, 2020
    • Tim van der Molen's avatar
      Enable --version-sort on systems without strverscmp() · 5e4c6de7
      Tim van der Molen authored
      The --version-sort option requires strverscmp(), but this is a glibc
      extension that does not exist on OpenBSD and other systems. To enable
      --version-sort on those systems, provide an internal implementation of
      strverscmp(). The implementation is from the musl C library and is
      MIT-licensed.
      
      The build process remains the same: the verscmp flag should be set to 1
      only if strverscmp() is available in libc. If verscmp is 0, then the
      internal implementation is used.
      5e4c6de7
  11. May 30, 2020
  12. May 29, 2020
  13. Apr 11, 2020
  14. Apr 08, 2020
  15. Apr 05, 2020
  16. Mar 30, 2020
  17. Mar 26, 2020
    • c99pedant's avatar
      Quit curl cleanly even if libcurl is old. · 18103982
      c99pedant authored
      Building feh 3.3 on CentOS 7 x86_64 warns `curl_quit_function` in `imlib.c` is unused:
      
      ```
      cc -g -O2 -Wall -Wextra -pedantic -std=c11 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -DHAVE_LIBCURL -DHAVE_VERSCMP -DHAVE_LIBXINERAMA -DHAVE_LIBEXIF -DPREFIX=\"/usr/local\" -DPACKAGE=\"feh\" -DVERSION=\"3.3\"   -c -o imlib.o imlib.c
      imlib.c:545:12: warning: ‘curl_quit_function’ defined but not used [-Wunused-function]
       static int curl_quit_function(void *clientp,  curl_off_t dltotal,  curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
                  ^
      ```
      The `curl_quit_function` code was added in response to pull [#435](https://github.com/derf/feh/pull/435)
      
      In issue [#485](https://github.com/derf/feh/issues/485) a fellow CentOS 7 user had an error building feh because CentOS 7 is locked into an old version of libcurl. In the fix, a version guard was wrapped around the `curl_easy_setopt` call, but the rest of the code was unchanged.
      
      Since I don't want to maintain a local build of libcurl, I looked at the curl docs and noticed there is an older callback which serves the same purpose: https://curl.haxx.se/libcurl/c/CURLOPT_PROGRESSFUNCTION.html
      
      The difference between `PROGRESS` and `XFERINFO` is the callback's argument types, with `PROGRESS` using `double` and `XFERINFO` using `curl_off_t`: https://curl.haxx.se/libcurl/c/CURLOPT_XFERINFOFUNCTION.html
      
      The callback's return value logic and use of `CURLOPT_NOPROGRESS` is the same.
      
      For context, the latest libcurl RPM I'm getting from yum updates is `libcurl-7.29.0-54.el7_7.2.x86_64`. The "stable" versions of other distros may encounter similar issues. The CentOS 7 "End of Life" date is 2024-06-30 so you should hear the end of this by then, at least from us pesky CentOS users.
      18103982
  18. Jan 24, 2020
  19. Nov 07, 2019
  20. Oct 30, 2019
  21. Oct 11, 2019
  22. Jul 22, 2019
  23. Jul 12, 2019
    • Tobias Stoeckmann's avatar
      Check stat for error before setting permissions. · 2c38c9da
      Tobias Stoeckmann authored
      
      When setting wallpapers without --no-fehbg option, a ~/.fehbg file is
      created. This file is set to be an executable for later re-use.
      
      Calling stat() without checking the return value can lead to issues.
      If the call fails, then s.st_mode is undefined and excessive permissions
      could be set to .fehbg, at worst even setuid/setgid bits for a world
      writable file.
      
      While adjusting this, I changed the code to use fstat() and fchmod() to
      avoid a further -- but very unlikely -- issue: race condition in form of
      TOCTOU. If the file ~/.fehsetbg is replaced by a symlink right before
      the chmod call, then a different file would be set executable + the
      default mode of the (newly created) file. I don't expect this to be a
      real world issue but changed this part "while at it" anyway for more
      robust code and a good example on how to handle files.
      
      Signed-off-by: default avatarTobias Stoeckmann <tobias@stoeckmann.org>
      2c38c9da
  24. Jul 08, 2019
  25. Apr 18, 2019
Loading