mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
app-admin/testdisk: remove unused patches
Closes: https://github.com/gentoo/gentoo/pull/1805 Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
This commit is contained in:
committed by
Patrice Clement
parent
3871e9e589
commit
acb49daeaf
@@ -1,227 +0,0 @@
|
||||
From a2676d349a975a142f1119c0aecb435e1b0db8b8 Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Grenier <grenier@cgsecurity.org>
|
||||
Date: Sat, 14 Jun 2014 12:08:59 +0200
|
||||
Subject: TestDisk: fix rare crash when listing NTFS directories
|
||||
|
||||
|
||||
diff --git a/src/ntfs_dir.c b/src/ntfs_dir.c
|
||||
index d416cea..b51c63d 100644
|
||||
--- a/src/ntfs_dir.c
|
||||
+++ b/src/ntfs_dir.c
|
||||
@@ -167,7 +167,15 @@ static int ntfs_td_list_entry( struct ntfs_dir_struct *ls, const ntfschar *name
|
||||
const MFT_REF mref, const unsigned dt_type)
|
||||
{
|
||||
int result = 0;
|
||||
- char *filename = (char *)calloc (1, MAX_PATH);
|
||||
+ char *filename;
|
||||
+ ntfs_inode *ni;
|
||||
+ ntfs_attr_search_ctx *ctx_si = NULL;
|
||||
+ file_info_t *new_file=NULL;
|
||||
+ /* Keep FILE_NAME_WIN32 and FILE_NAME_POSIX */
|
||||
+ if ((name_type & FILE_NAME_WIN32_AND_DOS) == FILE_NAME_DOS)
|
||||
+ return 0;
|
||||
+
|
||||
+ filename = (char *)calloc (1, MAX_PATH);
|
||||
if (!filename)
|
||||
{
|
||||
log_critical("ntfs_td_list_entry calloc failed\n");
|
||||
@@ -178,118 +186,111 @@ static int ntfs_td_list_entry( struct ntfs_dir_struct *ls, const ntfschar *name
|
||||
if (ntfs_ucstoutf8(ls->cd, name, name_len, &filename, MAX_PATH) < 0 &&
|
||||
ntfs_ucstombs (name, name_len, &filename, MAX_PATH) < 0) {
|
||||
log_error("Cannot represent filename in current locale.\n");
|
||||
- goto free;
|
||||
+ goto freefn;
|
||||
}
|
||||
#else
|
||||
if (ntfs_ucstombs (name, name_len, &filename, MAX_PATH) < 0) {
|
||||
log_error("Cannot represent filename in current locale.\n");
|
||||
- goto free;
|
||||
+ goto freefn;
|
||||
}
|
||||
#endif
|
||||
|
||||
result = 0; /* These are successful */
|
||||
if (MREF(mref) < FILE_first_user && filename[0] == '$') /* Hide system file */
|
||||
- goto free;
|
||||
- /* Keep FILE_NAME_WIN32 and FILE_NAME_POSIX */
|
||||
- if ((name_type & FILE_NAME_WIN32_AND_DOS) == FILE_NAME_DOS)
|
||||
- goto free;
|
||||
- {
|
||||
- ntfs_inode *ni;
|
||||
- ntfs_attr_search_ctx *ctx_si = NULL;
|
||||
- file_info_t *new_file=NULL;
|
||||
+ goto freefn;
|
||||
+ result = -1; /* Everything else is bad */
|
||||
|
||||
- result = -1; /* Everything else is bad */
|
||||
+ ni = ntfs_inode_open(ls->vol, mref);
|
||||
+ if (!ni)
|
||||
+ goto freefn;
|
||||
+ new_file=(file_info_t*)MALLOC(sizeof(*new_file));
|
||||
+ new_file->status=0;
|
||||
+ new_file->st_ino=MREF(mref);
|
||||
+ new_file->st_uid=0;
|
||||
+ new_file->st_gid=0;
|
||||
|
||||
- ni = ntfs_inode_open(ls->vol, mref);
|
||||
- if (!ni)
|
||||
- goto release;
|
||||
- new_file=(file_info_t*)MALLOC(sizeof(*new_file));
|
||||
- new_file->status=0;
|
||||
- td_list_add_tail(&new_file->list, &ls->dir_list->list);
|
||||
- new_file->st_ino=MREF(mref);
|
||||
- new_file->st_uid=0;
|
||||
- new_file->st_gid=0;
|
||||
-
|
||||
- ctx_si = ntfs_attr_get_search_ctx(ni, ni->mrec);
|
||||
- if (ctx_si)
|
||||
+ ctx_si = ntfs_attr_get_search_ctx(ni, ni->mrec);
|
||||
+ if (ctx_si)
|
||||
+ {
|
||||
+ if (ntfs_attr_lookup(AT_STANDARD_INFORMATION, AT_UNNAMED, 0, CASE_SENSITIVE, 0, NULL, 0, ctx_si)==0)
|
||||
{
|
||||
- if (ntfs_attr_lookup(AT_STANDARD_INFORMATION, AT_UNNAMED, 0, CASE_SENSITIVE, 0, NULL, 0, ctx_si)==0)
|
||||
+ const ATTR_RECORD *attr = ctx_si->attr;
|
||||
+ const STANDARD_INFORMATION *si = (const STANDARD_INFORMATION*)((const char*)attr +
|
||||
+ le16_to_cpu(attr->value_offset));
|
||||
+ if(si)
|
||||
{
|
||||
- const ATTR_RECORD *attr = ctx_si->attr;
|
||||
- const STANDARD_INFORMATION *si = (const STANDARD_INFORMATION*)((const char*)attr +
|
||||
- le16_to_cpu(attr->value_offset));
|
||||
- if(si)
|
||||
- {
|
||||
- new_file->td_atime=td_ntfs2utc(sle64_to_cpu(si->last_access_time));
|
||||
- new_file->td_mtime=td_ntfs2utc(sle64_to_cpu(si->last_data_change_time));
|
||||
- new_file->td_ctime=td_ntfs2utc(sle64_to_cpu(si->creation_time));
|
||||
- }
|
||||
+ new_file->td_atime=td_ntfs2utc(sle64_to_cpu(si->last_access_time));
|
||||
+ new_file->td_mtime=td_ntfs2utc(sle64_to_cpu(si->last_data_change_time));
|
||||
+ new_file->td_ctime=td_ntfs2utc(sle64_to_cpu(si->creation_time));
|
||||
}
|
||||
- ntfs_attr_put_search_ctx(ctx_si);
|
||||
}
|
||||
+ ntfs_attr_put_search_ctx(ctx_si);
|
||||
+ }
|
||||
+ {
|
||||
+ ATTR_RECORD *rec;
|
||||
+ int first=1;
|
||||
+ ntfs_attr_search_ctx *ctx = NULL;
|
||||
+ if (dt_type == NTFS_DT_DIR)
|
||||
{
|
||||
- ATTR_RECORD *rec;
|
||||
- int first=1;
|
||||
- ntfs_attr_search_ctx *ctx = NULL;
|
||||
- if (dt_type == NTFS_DT_DIR)
|
||||
+ new_file->name=strdup(filename);
|
||||
+ new_file->st_mode = LINUX_S_IFDIR| LINUX_S_IRUGO | LINUX_S_IXUGO;
|
||||
+ new_file->st_size=0;
|
||||
+ td_list_add_tail(&new_file->list, &ls->dir_list->list);
|
||||
+ first=0;
|
||||
+ }
|
||||
+ ctx = ntfs_attr_get_search_ctx(ni, ni->mrec);
|
||||
+ /* A file has always an unnamed date stream and
|
||||
+ * may have named alternate data streams (ADS) */
|
||||
+ while((rec = find_attribute(AT_DATA, ctx)))
|
||||
+ {
|
||||
+ const s64 filesize = ntfs_get_attribute_value_length(ctx->attr);
|
||||
+ if(rec->name_length &&
|
||||
+ (ls->dir_data->param & FLAG_LIST_ADS)!=FLAG_LIST_ADS)
|
||||
+ continue;
|
||||
+ if(first==0)
|
||||
{
|
||||
- new_file->name=strdup(filename);
|
||||
- new_file->st_mode = LINUX_S_IFDIR| LINUX_S_IRUGO | LINUX_S_IXUGO;
|
||||
- new_file->st_size=0;
|
||||
- td_list_add_tail(&new_file->list, &ls->dir_list->list);
|
||||
- first=0;
|
||||
+ const file_info_t *old_file=new_file;
|
||||
+ new_file=(file_info_t *)MALLOC(sizeof(*new_file));
|
||||
+ memcpy(new_file, old_file, sizeof(*new_file));
|
||||
}
|
||||
- ctx = ntfs_attr_get_search_ctx(ni, ni->mrec);
|
||||
- /* A file has always an unnamed date stream and
|
||||
- * may have named alternate data streams (ADS) */
|
||||
- while((rec = find_attribute(AT_DATA, ctx)))
|
||||
+ new_file->st_mode = LINUX_S_IFREG | LINUX_S_IRUGO;
|
||||
+ new_file->st_size=filesize;
|
||||
+ if (rec->name_length)
|
||||
{
|
||||
- const s64 filesize = ntfs_get_attribute_value_length(ctx->attr);
|
||||
- if(rec->name_length &&
|
||||
- (ls->dir_data->param & FLAG_LIST_ADS)!=FLAG_LIST_ADS)
|
||||
- continue;
|
||||
- if(first==0)
|
||||
- {
|
||||
- const file_info_t *old_file=new_file;
|
||||
- new_file=(file_info_t *)MALLOC(sizeof(*new_file));
|
||||
- memcpy(new_file, old_file, sizeof(*new_file));
|
||||
- }
|
||||
- new_file->st_mode = LINUX_S_IFREG | LINUX_S_IRUGO;
|
||||
- new_file->st_size=filesize;
|
||||
- if (rec->name_length)
|
||||
+ char *stream_name=NULL;
|
||||
+ new_file->status=FILE_STATUS_ADS;
|
||||
+ new_file->name = (char *)MALLOC(MAX_PATH);
|
||||
+ if (ntfs_ucstombs((ntfschar *) ((char *) rec + le16_to_cpu(rec->name_offset)),
|
||||
+ rec->name_length, &stream_name, 0) < 0)
|
||||
{
|
||||
- char *stream_name=NULL;
|
||||
- new_file->status=FILE_STATUS_ADS;
|
||||
- new_file->name = (char *)MALLOC(MAX_PATH);
|
||||
- if (ntfs_ucstombs((ntfschar *) ((char *) rec + le16_to_cpu(rec->name_offset)),
|
||||
- rec->name_length, &stream_name, 0) < 0)
|
||||
- {
|
||||
- log_error("ERROR: Cannot translate name into current locale.\n");
|
||||
- snprintf(new_file->name, MAX_PATH, "%s:???", filename);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- snprintf(new_file->name, MAX_PATH, "%s:%s", filename, stream_name);
|
||||
- }
|
||||
- free(stream_name);
|
||||
+ log_error("ERROR: Cannot translate name into current locale.\n");
|
||||
+ snprintf(new_file->name, MAX_PATH, "%s:???", filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
- new_file->name=strdup(filename);
|
||||
+ snprintf(new_file->name, MAX_PATH, "%s:%s", filename, stream_name);
|
||||
}
|
||||
- td_list_add_tail(&new_file->list, &ls->dir_list->list);
|
||||
- first=0;
|
||||
+ free(stream_name);
|
||||
}
|
||||
- ntfs_attr_put_search_ctx(ctx);
|
||||
+ else
|
||||
+ {
|
||||
+ new_file->name=strdup(filename);
|
||||
+ }
|
||||
+ td_list_add_tail(&new_file->list, &ls->dir_list->list);
|
||||
+ first=0;
|
||||
+ }
|
||||
+ ntfs_attr_put_search_ctx(ctx);
|
||||
+ if(first)
|
||||
+ {
|
||||
+ free(new_file);
|
||||
}
|
||||
-
|
||||
- result = 0;
|
||||
-release:
|
||||
- /* close the inode. */
|
||||
- if (ni)
|
||||
- ntfs_inode_close(ni);
|
||||
}
|
||||
-free:
|
||||
+
|
||||
+ result = 0;
|
||||
+ /* close the inode. */
|
||||
+ if (ni)
|
||||
+ ntfs_inode_close(ni);
|
||||
+freefn:
|
||||
free (filename);
|
||||
return result;
|
||||
}
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
--- Makefile.am-original 2015-04-20 11:31:03.000000000 -0600
|
||||
+++ Makefile.am 2015-04-20 13:27:01.000000000 -0600
|
||||
@@ -1,9 +1,8 @@
|
||||
SUBDIRS = icons man src
|
||||
|
||||
-EXTRA_DIST = AUTHORS COPYING ChangeLog INFO INSTALL NEWS README THANKS compile.sh \
|
||||
+EXTRA_DIST = compile.sh \
|
||||
progsreiserfs-journal.patch progsreiserfs-file-read.patch \
|
||||
darwin/readme_mac_powerpc.txt darwin/readme_mac_intel.txt \
|
||||
- documentation.html \
|
||||
dos/readme.txt \
|
||||
linux/testdisk.spec.in \
|
||||
linux/qphotorec.desktop \
|
||||
@@ -24,9 +23,9 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = gnits
|
||||
|
||||
+dist_doc_DATA = AUTHORS COPYING ChangeLog NEWS INFO INSTALL README THANKS documentation.html
|
||||
+
|
||||
install-data-hook:
|
||||
- $(mkinstalldirs) $(DESTDIR)$(docdir)
|
||||
- $(INSTALL_DATA) $(top_srcdir)/AUTHORS $(top_srcdir)/ChangeLog $(top_srcdir)/NEWS $(top_srcdir)/README $(top_srcdir)/THANKS $(top_srcdir)/documentation.html $(DESTDIR)$(docdir)
|
||||
if USEQT
|
||||
$(mkinstalldirs) $(DESTDIR)$(datadir)/applications
|
||||
$(INSTALL_DATA) $(top_srcdir)/linux/qphotorec.desktop $(DESTDIR)$(datadir)/applications
|
||||
Reference in New Issue
Block a user