]> git.sven.stormbind.net Git - sven/fuse-exfat.git/commitdiff
Imported Upstream version 1.2.3 upstream/1.2.3
authorSven Hoexter <sven@timegate.de>
Tue, 22 Dec 2015 13:20:59 +0000 (14:20 +0100)
committerSven Hoexter <sven@timegate.de>
Tue, 22 Dec 2015 13:20:59 +0000 (14:20 +0100)
ChangeLog
configure
configure.ac
libexfat/node.c

index d6f99d037219522dfaa051816cb82fb27ef72cd3..05cd191e38a23154ae4cbd23ee3c2096b3d75532 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+1.2.3 (2015-12-19)
+
+* Fixed clusters loss when file renaming replaces target.
+
 1.2.2 (2015-11-09)
 
 * Improved reliability in case of a sudden unplug: FS will be in a clean state
 1.2.2 (2015-11-09)
 
 * Improved reliability in case of a sudden unplug: FS will be in a clean state
index 2f47ad143e772ae1668eb78441ed0be66a075b2e..afda1d26bbe43a76f259d80e9095e911bdbf16ff 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Free exFAT implementation 1.2.2.
+# Generated by GNU Autoconf 2.69 for Free exFAT implementation 1.2.3.
 #
 # Report bugs to <relan@users.noreply.github.com>.
 #
 #
 # Report bugs to <relan@users.noreply.github.com>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Free exFAT implementation'
 PACKAGE_TARNAME='fuse-exfat'
 # Identity of this package.
 PACKAGE_NAME='Free exFAT implementation'
 PACKAGE_TARNAME='fuse-exfat'
-PACKAGE_VERSION='1.2.2'
-PACKAGE_STRING='Free exFAT implementation 1.2.2'
+PACKAGE_VERSION='1.2.3'
+PACKAGE_STRING='Free exFAT implementation 1.2.3'
 PACKAGE_BUGREPORT='relan@users.noreply.github.com'
 PACKAGE_URL='https://github.com/relan/exfat'
 
 PACKAGE_BUGREPORT='relan@users.noreply.github.com'
 PACKAGE_URL='https://github.com/relan/exfat'
 
@@ -1238,7 +1238,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Free exFAT implementation 1.2.2 to adapt to many kinds of systems.
+\`configure' configures Free exFAT implementation 1.2.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1304,7 +1304,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Free exFAT implementation 1.2.2:";;
+     short | recursive ) echo "Configuration of Free exFAT implementation 1.2.3:";;
    esac
   cat <<\_ACEOF
 
    esac
   cat <<\_ACEOF
 
@@ -1403,7 +1403,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Free exFAT implementation configure 1.2.2
+Free exFAT implementation configure 1.2.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1458,7 +1458,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Free exFAT implementation $as_me 1.2.2, which was
+It was created by Free exFAT implementation $as_me 1.2.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2321,7 +2321,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='fuse-exfat'
 
 # Define the identity of the package.
  PACKAGE='fuse-exfat'
- VERSION='1.2.2'
+ VERSION='1.2.3'
 
 
 cat >>confdefs.h <<_ACEOF
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4839,7 +4839,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Free exFAT implementation $as_me 1.2.2, which was
+This file was extended by Free exFAT implementation $as_me 1.2.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4906,7 +4906,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Free exFAT implementation config.status 1.2.2
+Free exFAT implementation config.status 1.2.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index e50b0b839216aac0586e26618bc21d9b6320b974..43e31e4b855bade50338be19d0b611f32f8b537c 100644 (file)
@@ -21,7 +21,7 @@
 #
 
 AC_INIT([Free exFAT implementation],
 #
 
 AC_INIT([Free exFAT implementation],
-       [1.2.2],
+       [1.2.3],
        [relan@users.noreply.github.com],
        [fuse-exfat],
        [https://github.com/relan/exfat])
        [relan@users.noreply.github.com],
        [fuse-exfat],
        [https://github.com/relan/exfat])
index d05f20dc15aecb729c52557186a778eb8530e368..4dd4dc6a4c6085a8a8f3622609951451aa7b2d87 100644 (file)
@@ -1129,6 +1129,16 @@ int exfat_rename(struct exfat* ef, const char* old_path, const char* new_path)
                        }
                        exfat_put_node(ef, existing);
                        if (rc != 0)
                        }
                        exfat_put_node(ef, existing);
                        if (rc != 0)
+                       {
+                               /* free clusters even if something went wrong; overwise they
+                                  will be just lost */
+                               exfat_cleanup_node(ef, existing);
+                               exfat_put_node(ef, dir);
+                               exfat_put_node(ef, node);
+                               return rc;
+                       }
+                       rc = exfat_cleanup_node(ef, existing);
+                       if (rc != 0)
                        {
                                exfat_put_node(ef, dir);
                                exfat_put_node(ef, node);
                        {
                                exfat_put_node(ef, dir);
                                exfat_put_node(ef, node);