Automatic import for version 6.11

This commit is contained in:
Rosa 2012-02-01 14:51:15 +04:00
commit 733623f2de
4 changed files with 472 additions and 0 deletions

3
.abf.yml Normal file
View file

@ -0,0 +1,3 @@
sources:
"progsreiserfs-0.3.1-rc8.tar.bz2": 24d3863d3b80a2b08da56bbf07df7f0ae327d7a8
"testdisk-6.11.tar.bz2": 6d25ceaed5a7f5e35466b0ad75a4bca104f66532

View file

@ -0,0 +1,183 @@
diff -ru testdisk-6.11/src/file_jpg.c testdisk-6.11.3/src/file_jpg.c
--- testdisk-6.11/src/file_jpg.c 2009-04-08 12:24:02.000000000 +0200
+++ testdisk-6.11.3/src/file_jpg.c 2009-05-06 09:55:05.000000000 +0200
@@ -95,36 +95,39 @@
memcmp(buffer, jpg_header_com, sizeof(jpg_header_com))==0)
{
unsigned int i=2;
+ time_t jpg_time=0;
while(i<6*512 && i+4<buffer_size)
{
if(buffer[i]!=0xff)
return 0;
/* 0xe0 APP0 */
+ /* 0xef APP15 */
/* 0xfe COM */
/* 0xdb DQT */
- if(buffer[i+1]==0xe0 ||
- buffer[i+1]==0xfe ||
- buffer[i+1]==0xdb)
- {
- }
- else if(buffer[i+1]==0xe1)
+ if(buffer[i+1]==0xe1)
{ /* APP1 Exif information */
if(i+0x0A < buffer_size && 2+(buffer[i+2]<<8)+buffer[i+3] > 0x0A)
{
unsigned int tiff_size=2+(buffer[i+2]<<8)+buffer[i+3]-0x0A;
if(buffer_size - (i+0x0A) < tiff_size)
tiff_size=buffer_size - (i+0x0A);
- file_recovery_new->time=get_date_from_tiff_header((const TIFFHeader*)&buffer[i+0x0A], tiff_size);
+ jpg_time=get_date_from_tiff_header((const TIFFHeader*)&buffer[i+0x0A], tiff_size);
}
}
+ else if((buffer[i+1]>=0xe0 && buffer[i+1]<=0xef) ||
+ buffer[i+1]==0xfe ||
+ buffer[i+1]==0xdb)
+ {
+ }
else
{
reset_file_recovery(file_recovery_new);
file_recovery_new->extension=file_hint_jpg.extension;
file_recovery_new->file_check=&file_check_jpg;
- file_recovery_new->min_filesize=288;
+ file_recovery_new->min_filesize=(i>288?i:288);
file_recovery_new->data_check=&data_check_jpg;
file_recovery_new->calculated_file_size=2;
+ file_recovery_new->time=jpg_time;
return 1;
}
i+=2+(buffer[i+2]<<8)+buffer[i+3];
@@ -135,6 +138,7 @@
file_recovery_new->min_filesize=i;
file_recovery_new->data_check=&data_check_jpg;
file_recovery_new->calculated_file_size=2;
+ file_recovery_new->time=jpg_time;
return 1;
}
return 0;
@@ -511,7 +515,7 @@
const unsigned int thumb_offset=thumb_data-(const char*)buffer;
const unsigned int thumb_size=ifbytecount-(const char*)tiff;
unsigned int j_old;
- if(thumb_offset+thumb_size < sizeof(buffer))
+ if(thumb_offset < sizeof(buffer) && thumb_offset+thumb_size < sizeof(buffer))
{
unsigned int j=thumb_offset+2;
unsigned int thumb_sos_found=0;
diff -ru testdisk-6.11/src/file_tiff.c testdisk-6.11.3/src/file_tiff.c
--- testdisk-6.11/src/file_tiff.c 2009-04-13 12:00:24.000000000 +0200
+++ testdisk-6.11.3/src/file_tiff.c 2009-05-06 09:55:55.000000000 +0200
@@ -65,6 +65,10 @@
const uint32_t *tiff_next_diroff;
const TIFFDirEntry *ifd;
unsigned int j;
+ /* Bound checking */
+ if((const char*)ifd0 < (const char*)tiff ||
+ (const char*)(ifd0+1) > (const char*)tiff + tiff_size)
+ return NULL;
for(j=0, ifd=&ifd0->ifd;
(const char*)(ifd+1) <= (const char*)tiff+tiff_size && j<be16(ifd0->nbr_fields);
j++, ifd++)
@@ -75,7 +79,9 @@
exififd=(const struct ifd_header *)((const char*)tiff + be32(ifd->tdir_offset));
}
tiff_next_diroff=(const uint32_t *)ifd;
- if(exififd!=NULL)
+ if(exififd!=NULL &&
+ (const char*)exififd > (const char*)tiff &&
+ (const char*)(exififd+1) <= (const char*)tiff + tiff_size)
{ /* Exif */
for(j=0, ifd=&exififd->ifd;
(const char*)(ifd+1) <= (const char*)tiff+tiff_size && j<be16(exififd->nbr_fields);
@@ -89,6 +95,9 @@
if(be32(*tiff_next_diroff)>0)
{
const const struct ifd_header *ifd1=(const struct ifd_header*)((const char *)tiff+be32(*tiff_next_diroff));
+ if((const char*)ifd1 <= (const char*)tiff ||
+ (const char*)(ifd1+1) > (const char*)tiff+tiff_size)
+ return NULL;
for(j=0, ifd=&ifd1->ifd;
(const char*)(ifd+1) <= (const char*)tiff+tiff_size && j<be16(ifd1->nbr_fields);
j++, ifd++)
@@ -107,6 +116,10 @@
const uint32_t *tiff_next_diroff;
const TIFFDirEntry *ifd;
unsigned int j;
+ /* Bound checking */
+ if((const char*)ifd0 < (const char*)tiff ||
+ (const char*)(ifd0+1) > (const char*)tiff + tiff_size)
+ return NULL;
for(j=0, ifd=&ifd0->ifd;
(const char*)(ifd+1) <= (const char*)tiff+tiff_size && j<le16(ifd0->nbr_fields);
j++, ifd++)
@@ -117,7 +130,9 @@
exififd=(const struct ifd_header *)((const char*)tiff + le32(ifd->tdir_offset));
}
tiff_next_diroff=(const uint32_t *)ifd;
- if(exififd!=NULL)
+ if(exififd!=NULL &&
+ (const char*)exififd > (const char*)tiff &&
+ (const char*)(exififd+1) <= (const char*)tiff + tiff_size)
{ /* Exif */
for(j=0, ifd=&exififd->ifd;
(const char*)(ifd+1) <= (const char*)tiff+tiff_size && j<le16(exififd->nbr_fields);
@@ -131,6 +146,10 @@
if(le32(*tiff_next_diroff)>0)
{
const const struct ifd_header *ifd1=(const struct ifd_header*)((const char *)tiff+le32(*tiff_next_diroff));
+ /* Bound checking */
+ if((const char*)(ifd1) <= (const char*)tiff ||
+ (const char*)(ifd1+1) > (const char*)tiff+tiff_size)
+ return NULL;
for(j=0, ifd=&ifd1->ifd;
(const char*)(ifd+1) <= (const char*)tiff+tiff_size && j<le16(ifd1->nbr_fields);
j++, ifd++)
@@ -168,11 +187,11 @@
/* DateTimeOriginal */
date_asc=find_tag_from_tiff_header(tiff, tiff_size, 0x9003);
/* DateTimeDigitalized*/
- if(date_asc==NULL || &date_asc[18] >= (const char *)tiff + tiff_size)
+ if(date_asc==NULL || date_asc < (const char *)tiff || &date_asc[18] >= (const char *)tiff + tiff_size)
date_asc=find_tag_from_tiff_header(tiff, tiff_size, 0x9004);
- if(date_asc==NULL || &date_asc[18] >= (const char *)tiff + tiff_size)
+ if(date_asc==NULL || date_asc < (const char *)tiff || &date_asc[18] >= (const char *)tiff + tiff_size)
date_asc=find_tag_from_tiff_header(tiff, tiff_size, 0x132);
- if(date_asc==NULL || &date_asc[18] >= (const char *)tiff + tiff_size)
+ if(date_asc==NULL || date_asc < (const char *)tiff || &date_asc[18] >= (const char *)tiff + tiff_size)
return (time_t)0;
memset(&tm_time, 0, sizeof(tm_time));
tm_time.tm_sec=(date_asc[17]-'0')*10+(date_asc[18]-'0'); /* seconds 0-59 */
@@ -210,7 +229,7 @@
{
const char *tag_make;
tag_make=find_tag_from_tiff_header((const TIFFHeader *)buffer, buffer_size, TIFFTAG_MAKE);
- if(tag_make!=NULL)
+ if(tag_make!=NULL && tag_make >= (const char *)buffer && tag_make < (const char *)buffer + buffer_size - 20)
{
if(strcmp(tag_make, "PENTAX Corporation ")==0 ||
strcmp(tag_make, "PENTAX ")==0)
diff -ru testdisk-6.11/src/savehdr.c testdisk-6.11.3/src/savehdr.c
--- testdisk-6.11/src/savehdr.c 2009-02-02 10:02:53.000000000 +0100
+++ testdisk-6.11.3/src/savehdr.c 2009-05-06 20:25:59.000000000 +0200
@@ -73,7 +73,8 @@
case STATUS_DELETED: status='D'; break;
}
snprintf((char*)buffer,256*DEFAULT_SECTOR_SIZE,"%s\n%2u %c Sys=%02X %5u %3u %2u %5u %3u %2u %10lu\n",
- disk_car->description(disk_car), partition->order,status,disk_car->arch->get_part_type(partition),
+ disk_car->description(disk_car), partition->order, status,
+ (disk_car->arch->get_part_type!=NULL ? disk_car->arch->get_part_type(partition) : 0),
offset2cylinder(disk_car,partition->part_offset), offset2head(disk_car,partition->part_offset),offset2sector(disk_car,partition->part_offset),
offset2cylinder(disk_car,partition->part_offset+partition->part_size-disk_car->sector_size), offset2head(disk_car,partition->part_offset+partition->part_size-disk_car->sector_size),offset2sector(disk_car,partition->part_offset+partition->part_size-disk_car->sector_size),
(unsigned long)(partition->part_size/disk_car->sector_size));
@@ -242,7 +243,8 @@
fprintf(f_backup,"%2d : start=%9lu, size=%9lu, Id=%02X, %c\n",
parts->part->order, (unsigned long)(parts->part->part_offset/disk_car->sector_size),
(unsigned long)(parts->part->part_size/disk_car->sector_size),
- disk_car->arch->get_part_type(parts->part), status);
+ (disk_car->arch->get_part_type!=NULL ? disk_car->arch->get_part_type(parts->part) : 0),
+ status);
}
break;
default:

View file

@ -0,0 +1,11 @@
--- progsreiserfs-0.3.1-rc8/libreiserfs/journal.c 2002-12-12 13:32:35.000000000 +0100
+++ progsreiserfs-0.3.1-rc8/libreiserfs/journal.c 2003-03-29 02:24:01.000000000 +0100
@@ -482,7 +482,7 @@
blk_t reiserfs_journal_boundary_transactions(reiserfs_journal_t *journal,
reiserfs_journal_trans_t *oldest, reiserfs_journal_trans_t *newest)
{
- reiserfs_gauge_t *gauge;
+ reiserfs_gauge_t *gauge=NULL;
struct reiserfs_replay_desc desc;
desc.oldest_id = 0xffffffff; desc.newest_id = 0x0;

275
testdisk.spec Normal file
View file

@ -0,0 +1,275 @@
%define name testdisk
%define version 6.11
%define rel %mkrel 5
%define ver_e2fsprogs 1.35
%define ver_progsreiserfs 0.3.1-rc8
%define ver_ntfsprogs 2.0.0
Summary: Tool to check and undelete partition
Summary(pl): Narzêdzie sprawdzaj±ce i odzyskuj±ce partycje
Summary(fr): Outil pour vérifier et restaurer des partitions
Name: %name
Version: %version
Release: %rel
License: GPLv2+
Group: System/Kernel and hardware
Source0: http://www.cgsecurity.org/%{name}-%{version}.tar.bz2
Source1: progsreiserfs-%ver_progsreiserfs.tar.bz2
Patch0: progsreiserfs-journal.patch
# Upstream patch
Patch1: photorec_611_exif_bound_checking_v2.patch
URL: http://www.cgsecurity.org/wiki/TestDisk
BuildRequires: ncurses-devel >= 5.2
BuildRequires: e2fsprogs-devel >= %ver_e2fsprogs
BuildRequires: libntfs-devel >= %ver_ntfsprogs
BuildRequires: jpeg-devel
BuildRequires: libuuid-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
%package -n photorec
Summary: Data recovery software
Group: System/Kernel and hardware
%description
Tool to check and undelete partition. Works with the following
filesystems:
* BeFS ( BeOS )
* BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
* CramFS, Compressed File System
* DOS/Windows FAT12, FAT16 and FAT32
* HFS and HFS+, Hierarchical File System
* JFS, IBM's Journaled File System
* Linux Ext2 and Ext3
* Linux Raid
o RAID 1: mirroring
o RAID 4: striped array with parity device
o RAID 5: striped array with distributed parity information
o RAID 6: striped array with distributed dual redundancy information
* Linux Swap (versions 1 and 2)
* LVM and LVM2, Linux Logical Volume Manager
* Mac partition map
* Novell Storage Services NSS
* NTFS ( Windows NT/2K/XP/2003/Vista )
* ReiserFS 3.5, 3.6 and 4
* Sun Solaris i386 disklabel
* Unix File System UFS and UFS2 (Sun/BSD/...)
* XFS, SGI's Journaled File System
%description -l pl
Narzêdzie sprawdzaj±ce i odzyskujace partycje. Pracuje z partycjami:
* BeFS ( BeOS )
* BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
* CramFS, Compressed File System
* DOS/Windows FAT12, FAT16 and FAT32
* HFS and HFS+, Hierarchical File System
* JFS, IBM's Journaled File System
* Linux Ext2 and Ext3
* Linux Raid
o RAID 1: mirroring
o RAID 4: striped array with parity device
o RAID 5: striped array with distributed parity information
o RAID 6: striped array with distributed dual redundancy information
* Linux Swap (versions 1 and 2)
* LVM and LVM2, Linux Logical Volume Manager
* Mac partition map
* Novell Storage Services NSS
* NTFS ( Windows NT/2K/XP/2003/Vista )
* ReiserFS 3.5, 3.6 and 4
* Sun Solaris i386 disklabel
* Unix File System UFS and UFS2 (Sun/BSD/...)
* XFS, SGI's Journaled File System
%description -l fr
Outil pour vérifier et restaurer des partitions. Fonctionne avec les
systèmes de fichiers suivants :
* BeFS ( BeOS )
* BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
* CramFS (Compressed File System)
* DOS/Windows FAT12, FAT16 and FAT32
* HFS et HFS+, Hierarchical File System
* JFS, Système de fichier journalisé d'IBM
* Linux Ext2 et Ext3
* Linux Raid
o RAID 1: mirroring
o RAID 4: striped array with parity device
o RAID 5: striped array with distributed parity information
o RAID 6: striped array with distributed dual redundancy information
* Linux Swap (versions 1 et 2)
* LVM et LVM2, Linux Logical Volume Manager
* Netware NSS
* NTFS ( Windows NT/2K/XP/2003 )
* ReiserFS 3.5, 3.6 et 4
* Sun Solaris i386 disklabel
* UFS et UFS2 (Sun/BSD/...)
* XFS, Système de fichier journalisé de SGI
%description -n photorec
PhotoRec is file data recovery software designed to recover lost files
including video, documents and archives from Hard Disks and CDRom and lost
pictures (thus, its 'Photo Recovery' name) from digital camera memory.
PhotoRec ignores the filesystem and goes after the underlying data, so it
will still work even if your media's filesystem has been severely damaged
or re-formatted.
%prep
%setup -q -a 1 -D -n %{name}-%{version}
%patch0
%patch1 -p1 -b .exiv2
%build
(
cd progsreiserfs-%ver_progsreiserfs
%configure2_5x --disable-Werror
%make
)
%configure2_5x --with-reiserfs-lib=`pwd`/progsreiserfs-%ver_progsreiserfs/libreiserfs/.libs/ --with-reiserfs-includes=`pwd`/progsreiserfs-%ver_progsreiserfs/include/
%make
%install
rm -rf $RPM_BUILD_ROOT
%makeinstall_std
rm -rf $RPM_BUILD_ROOT/%_docdir
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%doc AUTHORS COPYING ChangeLog INFO INSTALL NEWS README THANKS doc/*.html doc/*.gif
%attr(755,root,root) %{_sbindir}/testdisk
%{_mandir}/man1/testdisk*
%files -n photorec
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog INFO INSTALL NEWS README THANKS doc/*photorec*.html doc/*.gif
%attr(755,root,root) %{_sbindir}/photorec
%{_mandir}/man1/photorec*
%changelog
* Fri May 06 2011 Oden Eriksson <oeriksson@mandriva.com> 6.11-5mdv2011.0
+ Revision: 670677
- mass rebuild
* Fri Dec 03 2010 Oden Eriksson <oeriksson@mandriva.com> 6.11-4mdv2011.0
+ Revision: 607989
- rebuild
* Mon Jan 11 2010 Funda Wang <fwang@mandriva.org> 6.11-3mdv2010.1
+ Revision: 489480
- rebuild for new libjpegv8
* Mon Aug 17 2009 Oden Eriksson <oeriksson@mandriva.com> 6.11-2mdv2010.0
+ Revision: 417205
- fix deps
- rebuilt against libjpeg v7
* Mon May 11 2009 Frederik Himpe <fhimpe@mandriva.org> 6.11-1mdv2010.0
+ Revision: 374800
- Update to new version 6.11
- Remove -Werror=format-security patch: not needed anymore
- Add patch from upstream: adding missing boundary check in EXIF processing
* Sat Apr 11 2009 Funda Wang <fwang@mandriva.org> 6.10-1mdv2009.1
+ Revision: 366388
- fix str fmt
* Sat Aug 09 2008 Funda Wang <fwang@mandriva.org> 6.10-1mdv2009.0
+ Revision: 270034
- New version 6.10
* Wed Jun 18 2008 Thierry Vignaud <tv@mandriva.org> 6.9-3mdv2009.0
+ Revision: 225649
- rebuild
* Mon Feb 18 2008 Frederik Himpe <fhimpe@mandriva.org> 6.9-2mdv2008.1
+ Revision: 172022
- Update to 6.9 final
+ Olivier Blin <oblin@mandriva.com>
- restore BuildRoot
+ Thierry Vignaud <tv@mandriva.org>
- kill re-definition of %%buildroot on Pixel's request
* Tue Oct 30 2007 Funda Wang <fwang@mandriva.org> 6.9-1mdv2008.1
+ Revision: 103952
- New version 6.9
- Rebuild against latest ntfsprogs
* Wed Aug 15 2007 Pascal Terjan <pterjan@mandriva.org> 6.8-2mdv2008.0
+ Revision: 63741
- Split photorec out of testdisk rpm
* Tue Aug 14 2007 Funda Wang <fwang@mandriva.org> 6.8-1mdv2008.0
+ Revision: 63295
- BR jpeg-devel
- enable parallel build
- New version 6.8
* Thu Jun 28 2007 Pascal Terjan <pterjan@mandriva.org> 6.7-1mdv2008.0
+ Revision: 45334
- 6.7
- Update list of supported filesystems in description
* Sun Feb 18 2007 Pascal Terjan <pterjan@mandriva.org> 6.6-1mdv2007.0
+ Revision: 122428
- 6.6
* Mon Oct 23 2006 Pascal Terjan <pterjan@mandriva.org> 6.5-1mdv2007.0
+ Revision: 71694
- 6.5
- new URL
- Import testdisk
* Wed Aug 16 2006 Pascal Terjan <pterjan@mandriva.org> 6.4-1mdv2007.0
- New release 6.4
- Silence second setup
* Tue Mar 21 2006 Thierry Vignaud <tvignaud@mandriva.com> 6.3-2mdk
- rebuild for new libntfs
* Fri Mar 10 2006 Pascal Terjan <pterjan@mandriva.org> 6.3-1mdk
- 6.3
- Fix progsreiserfs build
* Wed Jan 11 2006 Oden Eriksson <oeriksson@mandriva.com> 6.1-2mdk
- rebuilt against new ntfs libs
* Fri Nov 18 2005 Pascal Terjan <pterjan@mandriva.org> 6.1-1mdk
- 6.1
* Mon Oct 03 2005 Pascal Terjan <pterjan@mandriva.org> 5.9-1mdk
- 5.9
* Sat Aug 13 2005 Pascal Terjan <pterjan@mandriva.org> 5.8-2mdk
- rebuild for new libntfs
* Sat Jun 25 2005 Pascal Terjan <pterjan@mandriva.org> 5.8-1mdk
- 5.8
* Tue May 03 2005 Pascal Terjan <pterjan@mandriva.org> 5.7-2mdk
- Fix everything going into doc
* Thu Apr 21 2005 Pascal Terjan <pterjan@mandriva.org> 5.7-1mdk
- 5.7
- Use system ntfsprogs
* Sun Dec 05 2004 Pascal Terjan <pterjan@mandrake.org> 5.5-1mdk
- 5.5
* Tue Nov 09 2004 Pascal Terjan <pterjan@mandrake.org> 5.4-1mdk
- 5.4
* Thu Apr 22 2004 Pascal Terjan <pterjan@mandrake.org> 5.2-1mdk
- 5.2
- Use system e2fsprogs
- Add ntfsprogs
- Update patch0