Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package feh for openSUSE:Factory checked in at 2021-11-03 17:26:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/feh (Old) and /work/SRC/openSUSE:Factory/.feh.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "feh" Wed Nov 3 17:26:06 2021 rev:42 rq:928941 version:3.7.2 Changes: -------- --- /work/SRC/openSUSE:Factory/feh/feh.changes 2021-05-12 19:33:16.870786192 +0200 +++ /work/SRC/openSUSE:Factory/.feh.new.1890/feh.changes 2021-11-03 17:27:01.433362096 +0100 @@ -1,0 +2,9 @@ +Mon Nov 1 12:48:00 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de> + +- Update to version 3.7.2: + * Fix crash when running feh without stdin file descriptor + * Support JPEG XL files when using imlib2-jxl + * Fix support for images smaller than 16 bytes + * Fix some out of bounds reads + +------------------------------------------------------------------- Old: ---- feh-3.7.tar.bz2 feh-3.7.tar.bz2.asc New: ---- feh-3.7.2.tar.bz2 feh-3.7.2.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ feh.spec ++++++ --- /var/tmp/diff_new_pack.zhFahT/_old 2021-11-03 17:27:01.877362339 +0100 +++ /var/tmp/diff_new_pack.zhFahT/_new 2021-11-03 17:27:01.881362342 +0100 @@ -17,7 +17,7 @@ Name: feh -Version: 3.7 +Version: 3.7.2 Release: 0 Summary: X11 image viewer License: MIT AND LGPL-2.0-or-later ++++++ feh-3.7.tar.bz2 -> feh-3.7.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/ChangeLog new/feh-3.7.2/ChangeLog --- old/feh-3.7/ChangeLog 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/ChangeLog 2021-09-25 09:24:31.000000000 +0200 @@ -1,3 +1,15 @@ +Sat, 25 Sep 2021 09:21:25 +0200 Daniel Friesel <derf+feh@finalrewind.org> + +* Release v3.7.2 + * Fix crash when running feh without stdin file descriptor + +Sat, 24 Jul 2021 22:30:12 +0200 Daniel Friesel <derf+feh@finalrewind.org> + +* Release v3.7.1 + * Support JPEG XL files when using imlib2-jxl (patch by Alistair) + * Fix support for images smaller than 16 bytes (patch by David Buchanan) + * Fix some out of bounds reads (patches by Tobias Stoeckmann) + Sun, 09 May 2021 11:31:55 +0200 Daniel Friesel <derf+feh@finalrewind.org> * Release v3.7 @@ -40,6 +52,7 @@ * Fix memory leak when reloading HTTP files with --no-conversion-cache Mon, 30 Nov 2020 19:44:47 +0100 Daniel Friesel <derf+feh@finalrewind.org> + * Release v3.6 * Add flip and rotate options to the menu * Improve unloadable image detection time (e.g. for large video files) by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/config.mk new/feh-3.7.2/config.mk --- old/feh-3.7/config.mk 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/config.mk 2021-09-25 09:24:31.000000000 +0200 @@ -1,5 +1,5 @@ PACKAGE ?= feh -VERSION ?= 3.7 +VERSION ?= 3.7.2 app ?= 0 curl ?= 1 @@ -90,7 +90,7 @@ MAN_INOTIFY = disabled endif -MAN_DATE ?= May 09, 2021 +MAN_DATE ?= September 25, 2021 # Uncomment this to use dmalloc #CFLAGS += -DWITH_DMALLOC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/man/feh.pre new/feh-3.7.2/man/feh.pre --- old/feh-3.7/man/feh.pre 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/man/feh.pre 2021-09-25 09:24:31.000000000 +0200 @@ -2123,6 +2123,13 @@ . .Sh KNOWN BUGS . +Imlib2 releases prior to 1.7.4 are unable to load gif, tiff, and webp images +if the filename does not end with gif, tiff, or webp, respectively. +Notably, this means that feh is unable to show gif, tiff, and webp images from +stdin or network URLs on systems using an Imlib2 version older than 1.7.4. +. +.Pp +. On systems with giflib 5.1.2, .Nm may be unable to load gif images. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/src/deps.mk new/feh-3.7.2/src/deps.mk --- old/feh-3.7/src/deps.mk 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/src/deps.mk 2021-09-25 09:24:31.000000000 +0200 @@ -1,57 +1,57 @@ events.o: events.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ - timers.h options.h events.h thumbnail.h + structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ + timers.h options.h events.h thumbnail.h feh_png.o: feh_png.c feh_png.h feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.o: filelist.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ - signals.h options.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ + signals.h options.h getopt.o: getopt.c getopt1.o: getopt1.c getopt.h gib_hash.o: gib_hash.c gib_hash.h gib_list.h utils.h debug.h gib_imlib.o: gib_imlib.c gib_imlib.h gib_style.h gib_list.h utils.h \ - debug.h + debug.h gib_list.o: gib_list.c gib_list.h utils.h debug.h gib_style.o: gib_style.c gib_style.h gib_list.h utils.h debug.h imlib.o: imlib.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h signals.h \ - winwidget.h options.h + structs.h menu.h utils.h getopt.h debug.h filelist.h signals.h \ + winwidget.h options.h index.o: index.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ - options.h index.h + structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ + options.h index.h keyevents.o: keyevents.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h thumbnail.h \ - filelist.h winwidget.h options.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h thumbnail.h \ + filelist.h winwidget.h options.h list.o: list.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h options.h + structs.h menu.h utils.h getopt.h debug.h filelist.h options.h main.o: main.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ - timers.h options.h events.h signals.h wallpaper.h + structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ + timers.h options.h events.h signals.h wallpaper.h md5.o: md5.c md5.h menu.o: menu.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h thumbnail.h filelist.h \ - winwidget.h wallpaper.h options.h + structs.h menu.h utils.h getopt.h debug.h thumbnail.h filelist.h \ + winwidget.h wallpaper.h options.h multiwindow.o: multiwindow.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h winwidget.h \ - timers.h filelist.h options.h signals.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h winwidget.h \ + timers.h filelist.h options.h signals.h options.o: options.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h options.h + structs.h menu.h utils.h getopt.h debug.h filelist.h options.h signals.o: signals.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ - options.h + structs.h menu.h utils.h getopt.h debug.h filelist.h winwidget.h \ + options.h slideshow.o: slideshow.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ - timers.h winwidget.h options.h signals.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ + timers.h winwidget.h options.h signals.h thumbnail.o: thumbnail.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ - winwidget.h options.h thumbnail.h md5.h feh_png.h index.h signals.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ + winwidget.h options.h thumbnail.h md5.h feh_png.h index.h signals.h timers.o: timers.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h options.h timers.h + structs.h menu.h utils.h getopt.h debug.h options.h timers.h utils.o: utils.c feh.h gib_hash.h gib_list.h gib_imlib.h gib_style.h \ - structs.h menu.h utils.h getopt.h debug.h options.h + structs.h menu.h utils.h getopt.h debug.h options.h wallpaper.o: wallpaper.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ - options.h wallpaper.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ + options.h wallpaper.h winwidget.o: winwidget.c feh.h gib_hash.h gib_list.h gib_imlib.h \ - gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ - winwidget.h options.h events.h timers.h + gib_style.h structs.h menu.h utils.h getopt.h debug.h filelist.h \ + winwidget.h options.h events.h timers.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/src/filelist.c new/feh-3.7.2/src/filelist.c --- old/feh-3.7/src/filelist.c 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/src/filelist.c 2021-09-25 09:24:31.000000000 +0200 @@ -24,19 +24,15 @@ */ -#ifdef HAVE_LIBEXIF -#include <libexif/exif-data.h> -#endif - -#ifdef HAVE_LIBCURL -#include <curl/curl.h> -#endif - #include "feh.h" #include "filelist.h" #include "signals.h" #include "options.h" +#ifdef HAVE_LIBCURL +#include <curl/curl.h> +#endif + gib_list *filelist = NULL; gib_list *original_file_items = NULL; /* original file items from argv */ int filelist_len = 0; @@ -202,7 +198,7 @@ struct stat st; char *path; - if (!origpath) + if (!origpath || *origpath == '\0') return; path = estrdup(origpath); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/src/imlib.c new/feh-3.7.2/src/imlib.c --- old/feh-3.7/src/imlib.c 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/src/imlib.c 2021-09-25 09:24:31.000000000 +0200 @@ -253,7 +253,9 @@ if (!fh) { return 0; } - if (fread(buf, 1, 16, fh) != 16) { + // Files smaller than buf will be padded with zeroes + memset(buf, 0, sizeof(buf)); + if (fread(buf, 1, 16, fh) <= 0) { fclose(fh); return 0; } @@ -312,6 +314,11 @@ // imlib2 releases do not support heic/heif images as of 2021-01. return 1; } + if ((buf[0] == 0xff && buf[1] == 0x0a) || !memcmp(buf, "\x00\x00\x00\x0cJXL \x0d\x0a\x87\x0a", 12)) { + // JXL - note that this is only supported in imlib2-jxl. Ordinary + // imlib2 releases do not support JXL images as of 2021-06. + return 1; + } buf[15] = 0; if (strstr((char *)buf, "XPM")) { // XPM @@ -1159,7 +1166,7 @@ if (buffer[0] == '\0') { - snprintf(buffer, EXIF_MAX_DATA, "%s", estrdup("Failed to run exif command")); + snprintf(buffer, EXIF_MAX_DATA, "%s", "Failed to run exif command"); gib_imlib_get_text_size(fn, buffer, NULL, &width, &height, IMLIB_TEXT_TO_RIGHT); info_buf[no_lines] = estrdup(buffer); no_lines++; @@ -1171,29 +1178,28 @@ { /* max 128 lines */ pos2 = 0; - while ( pos2 < 256 ) /* max 256 chars per line */ + while ( pos2 < 255 ) /* max 255 chars + 1 null byte per line */ { if ( (buffer[pos] != '\n') && (buffer[pos] != '\0') ) { - info_line[pos2] = buffer[pos]; - } - else if ( buffer[pos] == '\0' ) - { - pos = EXIF_MAX_DATA; /* all data seen */ - info_line[pos2] = '\0'; + info_line[pos2] = buffer[pos]; + } + else if ( buffer[pos] == '\0' ) + { + pos = EXIF_MAX_DATA; /* all data seen */ + break; + } + else + { + pos++; /* line finished, continue with next line*/ + break; } - else - { - info_line[pos2] = '\0'; /* line finished, continue with next line*/ - - pos++; - break; - } - pos++; - pos2++; + pos++; + pos2++; } + info_line[pos2] = '\0'; gib_imlib_get_text_size(fn, info_line, NULL, &line_width, &line_height, IMLIB_TEXT_TO_RIGHT); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/src/main.c new/feh-3.7.2/src/main.c --- old/feh-3.7/src/main.c 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/src/main.c 2021-09-25 09:24:31.000000000 +0200 @@ -158,8 +158,9 @@ FD_ZERO(&fdset); FD_SET(xfd, &fdset); - if (control_via_stdin) + if (control_via_stdin) { FD_SET(STDIN_FILENO, &fdset); + } #ifdef HAVE_INOTIFY if (opt.auto_reload) { FD_SET(opt.inotify_fd, &fdset); @@ -210,7 +211,12 @@ in that */ feh_handle_timer(); } - else if ((count > 0) && (FD_ISSET(0, &fdset))) + /* + * Beware: If stdin is not connected, we may end up with xfd == 0. + * However, STDIN_FILENO == 0 holds as well in most cases. So we must + * check control_via_stdin to avoid mistaking an X11 event for stdin. + */ + else if ((count > 0) && control_via_stdin && (FD_ISSET(STDIN_FILENO, &fdset))) feh_event_handle_stdin(); #ifdef HAVE_INOTIFY else if ((count > 0) && (FD_ISSET(opt.inotify_fd, &fdset))) @@ -227,7 +233,7 @@ && ((errno == ENOMEM) || (errno == EINVAL) || (errno == EBADF))) eprintf("Connection to X display lost"); - else if ((count > 0) && (FD_ISSET(0, &fdset))) + else if ((count > 0) && control_via_stdin && (FD_ISSET(STDIN_FILENO, &fdset))) feh_event_handle_stdin(); #ifdef HAVE_INOTIFY else if ((count > 0) && (FD_ISSET(opt.inotify_fd, &fdset))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/test/feh.t new/feh-3.7.2/test/feh.t --- old/feh-3.7/test/feh.t 2021-05-09 11:33:00.000000000 +0200 +++ new/feh-3.7.2/test/feh.t 2021-09-25 09:24:31.000000000 +0200 @@ -2,7 +2,7 @@ use strict; use warnings; use 5.010; -use Test::Command tests => 71; +use Test::Command tests => 73; $ENV{HOME} = 'test'; @@ -186,3 +186,7 @@ $cmd->exit_is_num(0); $cmd->stdout_is_file("test/${list_dir}/default"); $cmd->stderr_is_eq(''); + +$cmd = Test::Command->new( cmd => "$feh --list test/tiny.pbm" ); +$cmd->exit_is_num(0); +$cmd->stderr_is_eq(''); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-3.7/test/tiny.pbm new/feh-3.7.2/test/tiny.pbm --- old/feh-3.7/test/tiny.pbm 1970-01-01 01:00:00.000000000 +0100 +++ new/feh-3.7.2/test/tiny.pbm 2021-09-25 09:24:31.000000000 +0200 @@ -0,0 +1,4 @@ +P4 +1 1 + +
participants (1)
-
Source-Sync