[Bug 1880308] Re: rmlint doesn't prevent deletion of changed file marked as duplicate

Bug Watch Updater 1880308 at bugs.launchpad.net
Tue May 25 04:42:00 UTC 2021


** Changed in: rmlint (Debian)
       Status: Unknown => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1880308

Title:
  rmlint doesn't prevent deletion of changed file marked as duplicate

Status in rmlint package in Ubuntu:
  Fix Released
Status in rmlint package in Debian:
  Fix Released

Bug description:
  The shell script generated by version 2.6.1 of rmlint available in
  Bionic (18.04 LTS) does not prevent the deletion of the file marked as
  duplicate when it no longer matches the original.

  steps to reproduce:
  1. run rmlint to generate a script for deleting duplicates
  rmlint <directory> --types=duplicates -pp -c sh:handler=remove
  2. change contents of one of the files marked for removal
  3. run generated rmlint.sh with parameter -p (Recheck that files are still identical before removing duplicates.)

  expected result: file with changed content should be preserved
  current result: the difference between files is discovered, the error is shown (!), but file is removed (!) 

  This bug was fixed in the recent commit in the master branch of the
  source, it contains the simple change in script template:

  The shell script generated by version 2.6.1 of rmlint available in
  Bionic (18.04 LTS) does not prevent the deletion of the file marked as
  duplicate when it no longer matches the original.

  steps to reproduce:
  1. run rmlint to generate a script for deleting duplicates
  rmlint <directory> --types=duplicates -pp -c sh:handler=remove
  2. change contents of one of the files marked for removal
  3. run generated rmlint.sh with parameter -p (Recheck that files are still identical before removing duplicates.)

  expected result: file with changed content should be preserved
  current result: the difference between files is discovered, the error is shown (!), but the file is removed (!) 

  I consider this bug important, because it may lead to unexpected data
  loss.

  Based on git source history, it may be present even in the current
  stable version (v. 2.9.0) of rmlint in Focal (20.04LTS).

  This bug was fixed in the recent commit in the master branch of the source, it contains a simple change in script template:
  $ git show b9d328be2
  commit b9d328be2041e42813119d060c86893853b8e250
  Author: sarfatis <63501438+sarfatis at users.noreply.github.com>
  Date:   Mon May 11 10:02:57 2020 +0200

      fix .sh output template typo
      
      color_reset requires evaluating
      flag error in returned flow control value

  diff --git a/lib/formats/sh.sh b/lib/formats/sh.sh
  index 1a059e0b..3cdcf8be 100644
  --- a/lib/formats/sh.sh
  +++ b/lib/formats/sh.sh
  (... part removed) 
  @@ -160,6 +160,7 @@ original_check() {
       else
           if [ "$(check_for_equality "$1" "$2")" -ne "0" ]; then
               echo "${COL_RED}^^^^^^ Error: files no longer identical - cancelling.....${COL_RESET}"
  +            return 1
           fi
       fi
   }
  (END)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rmlint/+bug/1880308/+subscriptions



More information about the Ubuntu-sponsors mailing list