Update exFAT to 1.0

Change-Id: I059cf52c41e76c584f76534b84af8b398d9e4617
diff --git a/exfat/libexfat/byteorder.h b/exfat/libexfat/byteorder.h
index 4850efb..6792f37 100644
--- a/exfat/libexfat/byteorder.h
+++ b/exfat/libexfat/byteorder.h
@@ -2,7 +2,7 @@
 	byteorder.h (12.01.10)
 	Endianness stuff. exFAT uses little-endian byte order.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/cluster.c b/exfat/libexfat/cluster.c
index cb3e871..83c983d 100644
--- a/exfat/libexfat/cluster.c
+++ b/exfat/libexfat/cluster.c
@@ -2,7 +2,7 @@
 	cluster.c (03.09.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/exfat.h b/exfat/libexfat/exfat.h
index 6f15267..11be06f 100644
--- a/exfat/libexfat/exfat.h
+++ b/exfat/libexfat/exfat.h
@@ -3,7 +3,7 @@
 	Definitions of structures and constants used in exFAT file system
 	implementation.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/exfatfs.h b/exfat/libexfat/exfatfs.h
index 5a8e39f..6c58a84 100644
--- a/exfat/libexfat/exfatfs.h
+++ b/exfat/libexfat/exfatfs.h
@@ -2,7 +2,7 @@
 	exfatfs.h (29.08.09)
 	Definitions of structures and constants used in exFAT file system.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/log.c b/exfat/libexfat/log.c
index 8b589b4..034cc09 100644
--- a/exfat/libexfat/log.c
+++ b/exfat/libexfat/log.c
@@ -2,7 +2,7 @@
 	log.c (02.09.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/lookup.c b/exfat/libexfat/lookup.c
index 8c889b2..2e1aa81 100644
--- a/exfat/libexfat/lookup.c
+++ b/exfat/libexfat/lookup.c
@@ -2,7 +2,7 @@
 	lookup.c (02.09.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/mount.c b/exfat/libexfat/mount.c
index 44fb581..4daf126 100644
--- a/exfat/libexfat/mount.c
+++ b/exfat/libexfat/mount.c
@@ -2,7 +2,7 @@
 	mount.c (22.10.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/node.c b/exfat/libexfat/node.c
index bacb01d..ff2cea9 100644
--- a/exfat/libexfat/node.c
+++ b/exfat/libexfat/node.c
@@ -2,7 +2,7 @@
 	node.c (09.10.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -486,7 +486,7 @@
 	reset_cache(ef, ef->root);
 }
 
-void next_entry(struct exfat* ef, const struct exfat_node* parent,
+static void next_entry(struct exfat* ef, const struct exfat_node* parent,
 		cluster_t* cluster, off64_t* offset)
 {
 	*offset += sizeof(struct exfat_entry);
@@ -908,6 +908,23 @@
 		exfat_put_node(ef, node);
 		return rc;
 	}
+
+	/* check that target is not a subdirectory of the source */
+	if (node->flags & EXFAT_ATTRIB_DIR)
+	{
+		struct exfat_node* p;
+
+		for (p = dir; p; p = p->parent)
+			if (node == p)
+			{
+				if (existing != NULL)
+					exfat_put_node(ef, existing);
+				exfat_put_node(ef, dir);
+				exfat_put_node(ef, node);
+				return -EINVAL;
+			}
+	}
+
 	if (existing != NULL)
 	{
 		/* remove target if it's not the same node as source */
diff --git a/exfat/libexfat/time.c b/exfat/libexfat/time.c
index 890930e..10a826a 100644
--- a/exfat/libexfat/time.c
+++ b/exfat/libexfat/time.c
@@ -2,7 +2,7 @@
 	time.c (03.02.12)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/utf.c b/exfat/libexfat/utf.c
index 983c793..fd16fe9 100644
--- a/exfat/libexfat/utf.c
+++ b/exfat/libexfat/utf.c
@@ -2,7 +2,7 @@
 	utf.c (13.09.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/utils.c b/exfat/libexfat/utils.c
index 14b4791..499833b 100644
--- a/exfat/libexfat/utils.c
+++ b/exfat/libexfat/utils.c
@@ -2,7 +2,7 @@
 	utils.c (04.09.09)
 	exFAT file system implementation library.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
diff --git a/exfat/libexfat/version.h b/exfat/libexfat/version.h
index f35cb4f..b795e91 100644
--- a/exfat/libexfat/version.h
+++ b/exfat/libexfat/version.h
@@ -2,7 +2,7 @@
 	version.h (12.06.10)
 	Version constants.
 
-	Copyright (C) 2010-2012  Andrew Nayenko
+	Copyright (C) 2010-2013  Andrew Nayenko
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -21,8 +21,8 @@
 #ifndef VERSION_H_INCLUDED
 #define VERSION_H_INCLUDED
 
-#define EXFAT_VERSION_MAJOR 0
-#define EXFAT_VERSION_MINOR 9
-#define EXFAT_VERSION_PATCH 8
+#define EXFAT_VERSION_MAJOR 1
+#define EXFAT_VERSION_MINOR 0
+#define EXFAT_VERSION_PATCH 0
 
 #endif /* ifndef VERSION_H_INCLUDED */