diff options
author | Koushik Dutta <koushd@gmail.com> | 2012-07-20 16:15:43 -0700 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2012-07-20 16:16:02 -0700 |
commit | 47b4d437964ad7b38dd063b74515c2900a10dff1 (patch) | |
tree | 3b8b748df32cca64249e25261b0051ab75921f6f /nandroid.c | |
parent | 9c80f714e444e8ce28ba6c2ccae835a9a7f748e8 (diff) | |
download | bootable_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.c | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -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) { |