Package: debbindiff Version: 11 Tags: patch User: helm...@debian.org Usertags: rebootstrap
debbindiff --text crashes when it encounters an empty file. Example input package triggering the error: libreadline6 Example traceback being fixed: Traceback (most recent call last): File "/usr/bin/debbindiff", line 120, in <module> sys.exit(main()) File "/usr/bin/debbindiff", line 114, in main output_text(differences, print_func=print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 71, in output_text print_details(difference, print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details print_details(detail, new_print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details print_details(detail, new_print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details print_details(detail, new_print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 59, in print_details print_difference(detail, print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 36, in print_difference if not difference.lines2[-1].endswith('\n'): IndexError: list index out of range I think the fix is pretty straight forward. Helmut
>From 8697e25016f0cd2786563cc5c5aa440fa99ef62d Mon Sep 17 00:00:00 2001 From: Helmut Grohne <hel...@subdivi.de> Date: Thu, 26 Mar 2015 06:58:20 +0100 Subject: [PATCH] fix IndexError from --text with empty files Example input package triggering the error: libreadline6 Example traceback being fixed: Traceback (most recent call last): File "/usr/bin/debbindiff", line 120, in <module> sys.exit(main()) File "/usr/bin/debbindiff", line 114, in main output_text(differences, print_func=print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 71, in output_text print_details(difference, print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details print_details(detail, new_print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details print_details(detail, new_print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details print_details(detail, new_print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 59, in print_details print_difference(detail, print_func) File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 36, in print_difference if not difference.lines2[-1].endswith('\n'): IndexError: list index out of range --- debbindiff/presenters/text.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debbindiff/presenters/text.py b/debbindiff/presenters/text.py index 5cda5ce..ca60af8 100644 --- a/debbindiff/presenters/text.py +++ b/debbindiff/presenters/text.py @@ -30,10 +30,10 @@ def print_difference(difference, print_func): for line in difference.comment.split('\n'): print_func(u"ââ %s" % line) if difference.lines1 or difference.lines2: - if not difference.lines1[-1].endswith('\n'): + if difference.lines1 and not difference.lines1[-1].endswith('\n'): difference.lines1[-1] = difference.lines1[-1] + '\n' difference.lines1.append('<No newline at the end>\n') - if not difference.lines2[-1].endswith('\n'): + if difference.lines2 and nand ot difference.lines2[-1].endswith('\n'): difference.lines2[-1] = difference.lines2[-1] + '\n' difference.lines2.append('<No newline at the end>\n') g = difflib.unified_diff(difference.lines1, difference.lines2) -- 2.1.4
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds