package init
This commit is contained in:
parent
a42081a1ec
commit
b76e559c00
114
7180713BE58D1ADC.asc
Normal file
114
7180713BE58D1ADC.asc
Normal file
@ -0,0 +1,114 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
2qzgB8M76g==
|
||||
=Kv5J
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
162
A01-UDFReadBlocks-errors.patch
Normal file
162
A01-UDFReadBlocks-errors.patch
Normal file
@ -0,0 +1,162 @@
|
||||
diff --git a/src/dvd_reader.c b/src/dvd_reader.c
|
||||
index 4e112d3..e8d50f3 100644
|
||||
--- a/src/dvd_reader.c
|
||||
+++ b/src/dvd_reader.c
|
||||
@@ -1156,13 +1156,13 @@ int InternalUDFReadBlocksRaw( const dvd_reader_t *device, uint32_t lb_number,
|
||||
|
||||
if( !device->dev ) {
|
||||
fprintf( stderr, "libdvdread: Fatal error in block read.\n" );
|
||||
- return 0;
|
||||
+ return -1;
|
||||
}
|
||||
|
||||
ret = dvdinput_seek( device->dev, (int) lb_number );
|
||||
if( ret != (int) lb_number ) {
|
||||
fprintf( stderr, "libdvdread: Can't seek to block %u\n", lb_number );
|
||||
- return 0;
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
ret = dvdinput_read( device->dev, (char *) data,
|
||||
diff --git a/src/dvd_udf.c b/src/dvd_udf.c
|
||||
index 5eb3d2b..68c3a9a 100644
|
||||
--- a/src/dvd_udf.c
|
||||
+++ b/src/dvd_udf.c
|
||||
@@ -516,6 +516,7 @@ static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType,
|
||||
uint32_t lbnum;
|
||||
uint16_t TagID;
|
||||
struct icbmap tmpmap;
|
||||
+ int ret;
|
||||
|
||||
lbnum = partition->Start + ICB.Location;
|
||||
tmpmap.lbn = lbnum;
|
||||
@@ -526,10 +527,16 @@ static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType,
|
||||
}
|
||||
|
||||
do {
|
||||
- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
|
||||
+ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 );
|
||||
+ if( ret < 0 ) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ else if( ret == 0 ) {
|
||||
TagID = 0;
|
||||
- else
|
||||
+ }
|
||||
+ else {
|
||||
UDFDescriptor( LogBlock, &TagID );
|
||||
+ }
|
||||
|
||||
if( TagID == FileEntry ) {
|
||||
UDFFileEntry( LogBlock, FileType, partition, File );
|
||||
@@ -677,6 +688,7 @@ static int UDFGetAVDP( dvd_reader_t *device,
|
||||
uint32_t lastsector;
|
||||
int terminate;
|
||||
struct avdp_t;
|
||||
+ int ret;
|
||||
|
||||
if(GetUDFCache(device, AVDPCache, 0, avdp))
|
||||
return 1;
|
||||
@@ -687,11 +699,16 @@ static int UDFGetAVDP( dvd_reader_t *device,
|
||||
terminate = 0;
|
||||
|
||||
for(;;) {
|
||||
- if( DVDReadLBUDF( device, lbnum, 1, Anchor, 0 ) > 0 ) {
|
||||
- UDFDescriptor( Anchor, &TagID );
|
||||
- } else {
|
||||
+ ret = DVDReadLBUDF( device, lbnum, 1, Anchor, 0 );
|
||||
+ if( ret < 0 ) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ else if( ret == 0 ) {
|
||||
TagID = 0;
|
||||
}
|
||||
+ else {
|
||||
+ UDFDescriptor( Anchor, &TagID );
|
||||
+ }
|
||||
if (TagID != AnchorVolumeDescriptorPointer) {
|
||||
/* Not an anchor */
|
||||
if( terminate ) return 0; /* Final try failed */
|
||||
@@ -742,7 +759,7 @@ static int UDFFindPartition( dvd_reader_t *device, int partnum,
|
||||
uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
|
||||
uint32_t lbnum, MVDS_location, MVDS_length;
|
||||
uint16_t TagID;
|
||||
- int i, volvalid;
|
||||
+ int i, volvalid, ret;
|
||||
struct avdp_t avdp;
|
||||
|
||||
if(!UDFGetAVDP(device, &avdp))
|
||||
@@ -761,10 +778,16 @@ static int UDFFindPartition( dvd_reader_t *device, int partnum,
|
||||
lbnum = MVDS_location;
|
||||
do {
|
||||
|
||||
- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
|
||||
+ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 );
|
||||
+ if( ret < 0 ) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ else if( ret == 0 ) {
|
||||
TagID = 0;
|
||||
- else
|
||||
+ }
|
||||
+ else {
|
||||
UDFDescriptor( LogBlock, &TagID );
|
||||
+ }
|
||||
|
||||
if( ( TagID == PartitionDescriptor ) && ( !part->valid ) ) {
|
||||
/* Partition Descriptor */
|
||||
@@ -805,6 +828,7 @@ uint32_t UDFFindFile( dvd_reader_t *device, const char *filename,
|
||||
struct AD RootICB, File, ICB;
|
||||
char tokenline[ MAX_UDF_FILE_NAME_LEN ];
|
||||
uint8_t filetype;
|
||||
+ int ret;
|
||||
|
||||
*filesize = 0;
|
||||
tokenline[0] = '\0';
|
||||
@@ -820,10 +844,16 @@ uint32_t UDFFindFile( dvd_reader_t *device, const char *filename,
|
||||
/* Find root dir ICB */
|
||||
lbnum = partition.Start;
|
||||
do {
|
||||
- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
|
||||
+ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 );
|
||||
+ if( ret < 0 ) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ else if( ret == 0 ) {
|
||||
TagID = 0;
|
||||
- else
|
||||
+ }
|
||||
+ else {
|
||||
UDFDescriptor( LogBlock, &TagID );
|
||||
+ }
|
||||
|
||||
/* File Set Descriptor */
|
||||
if( TagID == FileSetDescriptor ) /* File Set Descriptor */
|
||||
@@ -886,7 +916,7 @@ static int UDFGetDescriptor( dvd_reader_t *device, int id,
|
||||
uint32_t lbnum, MVDS_location, MVDS_length;
|
||||
struct avdp_t avdp;
|
||||
uint16_t TagID;
|
||||
- int i, desc_found = 0;
|
||||
+ int i, desc_found = 0, ret;
|
||||
/* Find Anchor */
|
||||
lbnum = 256; /* Try #1, prime anchor */
|
||||
if(bufsize < DVD_VIDEO_LB_LEN)
|
||||
@@ -904,10 +934,16 @@ static int UDFGetDescriptor( dvd_reader_t *device, int id,
|
||||
/* Find Descriptor */
|
||||
lbnum = MVDS_location;
|
||||
do {
|
||||
- if( DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 ) <= 0 )
|
||||
+ ret = DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 );
|
||||
+ if( ret < 0 ) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ else if( ret == 0 ) {
|
||||
TagID = 0;
|
||||
- else
|
||||
+ }
|
||||
+ else {
|
||||
UDFDescriptor( descriptor, &TagID );
|
||||
+ }
|
||||
if( (TagID == id) && ( !desc_found ) )
|
||||
/* Descriptor */
|
||||
desc_found = 1;
|
||||
BIN
libdvdread-6.0.0.tar.bz2
Normal file
BIN
libdvdread-6.0.0.tar.bz2
Normal file
Binary file not shown.
6
libdvdread-6.0.0.tar.bz2.asc
Normal file
6
libdvdread-6.0.0.tar.bz2.asc
Normal file
@ -0,0 +1,6 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iF0EABECAB0WIQRl98a0IGvQV6frc3hxgHE75Y0a3AUCWl/CXgAKCRBxgHE75Y0a
|
||||
3F/3AJ9QnMbfr7cWIN64gW2SfuzHrFZpiACgl970rnPZtoEEN0CfUOuw2vMMz70=
|
||||
=9mCd
|
||||
-----END PGP SIGNATURE-----
|
||||
55
libdvdread.spec
Normal file
55
libdvdread.spec
Normal file
@ -0,0 +1,55 @@
|
||||
Name: libdvdread
|
||||
Version: 6.0.0
|
||||
Release: 3
|
||||
Summary: Library to access DVD disks
|
||||
License: GPLv2+
|
||||
URL: http://dvdnav.mplayerhq.hu/
|
||||
Source0: https://download.videolan.org/pub/videolan/libdvdread/%{version}/libdvdread-%{version}.tar.bz2
|
||||
Source1: https://download.videolan.org/pub/videolan/libdvdread/%{version}/libdvdread-%{version}.tar.bz2.asc
|
||||
Source2: https://download.videolan.org/pub/keys/7180713BE58D1ADC.asc
|
||||
Patch0001: A01-UDFReadBlocks-errors.patch
|
||||
BuildRequires: gcc gnupg2
|
||||
Provides: bundled(md5-gcc)
|
||||
|
||||
%description
|
||||
Libdvdread provides a simple foundation for reading DVD-Video images.
|
||||
It offers several DVD applications and allows application designers
|
||||
to access some of the more advanced features of the DVD format.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for libdvdread
|
||||
Requires: %{name} = %{version}-%{release} pkgconfig
|
||||
|
||||
%description devel
|
||||
Libdvdread-devel contains development files for libdvdread.
|
||||
|
||||
%prep
|
||||
gpg2 --import --import-options import-export,import-minimal %{S:2} > ./gpg-keyring.gpg
|
||||
gpgv2 --keyring ./gpg-keyring.gpg %{S:1} %{S:0}
|
||||
%autosetup -n %{name}-%{version} -p1
|
||||
|
||||
%build
|
||||
%configure --disable-static
|
||||
%make_build V=1
|
||||
|
||||
%install
|
||||
%make_install
|
||||
%delete_la
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS NEWS README ChangeLog TODO
|
||||
%{_libdir}/libdvdread.so.*
|
||||
%exclude %{_pkgdocdir}/COPYING
|
||||
|
||||
%files devel
|
||||
%{_includedir}/dvdread
|
||||
%{_libdir}/libdvdread.so
|
||||
%{_libdir}/pkgconfig/dvdread.pc
|
||||
|
||||
%changelog
|
||||
* Tue Feb 18 2020 zhusongbao <zhusongbao@huawei.com> 6.0.0-3
|
||||
- Package init
|
||||
Loading…
x
Reference in New Issue
Block a user