fix restore on mknod

Change-Id: I9fb8b927f81a8cded651e42026beb3d5c252d1e8
This commit is contained in:
bigbiff bigbiff
2013-02-26 20:10:16 -05:00
parent 54f68757c6
commit 71e5aa4eee
2 changed files with 14 additions and 10 deletions

View File

@@ -95,7 +95,7 @@ tar_extract_file(TAR *t, char *realname)
char *lnp;
int pathname_len;
int realname_len;
if (t->options & TAR_NOOVERWRITE)
{
struct stat s;
@@ -139,13 +139,13 @@ tar_extract_file(TAR *t, char *realname)
}
if (i != 0) {
printf("here i: %d\n", i);
printf("FAILED RESTORE OF FILE i: %s\n", realname);
return i;
}
i = tar_set_file_perms(t, realname);
if (i != 0) {
printf("i: %d\n", i);
printf("FAILED SETTING PERMS: %d\n", i);
return i;
}
/*
@@ -346,7 +346,7 @@ int
tar_extract_symlink(TAR *t, char *realname)
{
char *filename;
if (!TH_ISSYM(t))
{
printf("not a sym\n");
@@ -412,9 +412,9 @@ tar_extract_chardev(TAR *t, char *realname)
compat_makedev(devmaj, devmin)) == -1)
{
#ifdef DEBUG
perror("mknod()");
printf("mknod() failed, returning good anyway");
#endif
return -1;
return 0;
}
return 0;
@@ -451,9 +451,9 @@ tar_extract_blockdev(TAR *t, char *realname)
compat_makedev(devmaj, devmin)) == -1)
{
#ifdef DEBUG
perror("mknod()");
printf("mknod() failed but returning anyway");
#endif
return -1;
return 0;
}
return 0;

View File

@@ -133,7 +133,7 @@ int twrpTar::extractTarFork() {
}
else {
if ((pid = wait(&status)) == -1) {
LOGI("Tar creation failed\n");
LOGI("Tar extraction failed\n");
return -1;
}
else {
@@ -142,7 +142,7 @@ int twrpTar::extractTarFork() {
return -1;
}
else if (WIFEXITED(status) != 0)
LOGI("Tar creation successful\n");
LOGI("Tar extraction successful\n");
else {
LOGI("Tar creation failed\n");
return -1;
@@ -210,6 +210,8 @@ int twrpTar::Generate_Multiple_Archives(string Path) {
FileName += de->d_name;
if (has_data_media == 1 && FileName.size() >= 11 && strncmp(FileName.c_str(), "/data/media", 11) == 0)
continue; // Skip /data/media
if (de->d_type == DT_BLK || de->d_type == DT_CHR)
continue;
if (de->d_type == DT_DIR && strcmp(de->d_name, ".") != 0 && strcmp(de->d_name, "..") != 0)
{
unsigned long long folder_size = TWFunc::Get_Folder_Size(FileName, false);
@@ -344,6 +346,8 @@ int twrpTar::tarDirs(bool include_root) {
LOGI("adding %s\n", de->d_name);
#ifdef RECOVERY_SDCARD_ON_DATA
if ((tardir == "/data" || tardir == "/data/") && strcmp(de->d_name, "media") == 0) continue;
if (de->d_type == DT_BLK || de->d_type == DT_CHR)
continue;
#endif
if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) continue;