aboutsummaryrefslogtreecommitdiffstats
path: root/nandroid.c
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2012-07-20 16:15:43 -0700
committerKoushik Dutta <koushd@gmail.com>2012-07-20 16:16:02 -0700
commit47b4d437964ad7b38dd063b74515c2900a10dff1 (patch)
tree3b8b748df32cca64249e25261b0051ab75921f6f /nandroid.c
parent9c80f714e444e8ce28ba6c2ccae835a9a7f748e8 (diff)
downloadbootable_recovery-47b4d437964ad7b38dd063b74515c2900a10dff1.zip
bootable_recovery-47b4d437964ad7b38dd063b74515c2900a10dff1.tar.gz
bootable_recovery-47b4d437964ad7b38dd063b74515c2900a10dff1.tar.bz2
dedupe: use realpath instead of get_full_path which fails when dir does not exist.
nandroid: fix strftime usage mess caused by duplicate var names. dedupe: verify paths exist and fail properly. Change-Id: I06f3389a8b30d6c05aceff9f08cdaa83d032692a
Diffstat (limited to 'nandroid.c')
-rw-r--r--nandroid.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/nandroid.c b/nandroid.c
index 4998283..fee779f 100644
--- a/nandroid.c
+++ b/nandroid.c
@@ -55,6 +55,12 @@ void nandroid_generate_timestamp_path(const char* backup_path)
}
}
+static void ensure_directory(const char* dir) {
+ char tmp[PATH_MAX];
+ sprintf(tmp, "mkdir -p %s ; chmod 777 %s", dir, dir);
+ __system(tmp);
+}
+
static int print_and_error(const char* message) {
ui_print("%s", message);
return 1;
@@ -163,6 +169,7 @@ static int dedupe_compress_wrapper(const char* backup_path, const char* backup_f
d = dirname(blob_dir);
strcpy(blob_dir, d);
strcat(blob_dir, "/blobs");
+ ensure_directory(blob_dir);
if (!(nandroid_backup_bitfield & NANDROID_FIELD_DEDUPE_CLEARED_SPACE)) {
nandroid_backup_bitfield |= NANDROID_FIELD_DEDUPE_CLEARED_SPACE;
@@ -303,8 +310,7 @@ int nandroid_backup(const char* backup_path)
ui_print("There may not be enough free space to complete backup... continuing...\n");
}
char tmp[PATH_MAX];
- sprintf(tmp, "mkdir -p %s ; chmod 777 %s", backup_path, backup_path);
- __system(tmp);
+ ensure_directory(backup_path);
if (0 != (ret = nandroid_backup_partition(backup_path, "/boot")))
return ret;
@@ -378,14 +384,6 @@ int nandroid_backup(const char* backup_path)
return 0;
}
-typedef int (*format_function)(char* root);
-
-static void ensure_directory(const char* dir) {
- char tmp[PATH_MAX];
- sprintf(tmp, "mkdir -p %s ; chmod 777 %s", dir, dir);
- __system(tmp);
-}
-
typedef int (*nandroid_restore_handler)(const char* backup_file_image, const char* backup_path, int callback);
static int unyaffs_wrapper(const char* backup_file_image, const char* backup_path, int callback) {