ref: b8171911daa0908ebda3a7868a16f9e70fa375f3
parent: 5002be6b4d4390be21aa67e82ee9e20298692712
author: Jean-Baptiste Kempf <jb@videolan.org>
date: Tue Jan 27 10:15:20 EST 2015
Revert "device: Adjust types in offset calculations" This reverts commit c500fe5227012ac04ec0b91c6c29606bad246839.
--- a/src/device.c
+++ b/src/device.c
@@ -512,7 +512,7 @@
return i_blocks;
}
- i_seek = i_blocks * DVDCSS_BLOCK_SIZE;
+ i_seek = (off_t)i_blocks * (off_t)DVDCSS_BLOCK_SIZE;
i_seek = lseek( dvdcss->i_fd, i_seek, SEEK_SET );
if( i_seek < 0 )
@@ -519,10 +519,10 @@
{
print_error( dvdcss, "seek error" );
dvdcss->i_pos = -1;
- return (int) i_seek;
+ return i_seek;
}
- dvdcss->i_pos = (int) (i_seek / DVDCSS_BLOCK_SIZE);
+ dvdcss->i_pos = i_seek / DVDCSS_BLOCK_SIZE;
return dvdcss->i_pos;
}
@@ -550,7 +550,7 @@
return -1;
}
- dvdcss->i_pos = (int) (li_seek.QuadPart / DVDCSS_BLOCK_SIZE);
+ dvdcss->i_pos = li_seek.QuadPart / DVDCSS_BLOCK_SIZE;
return dvdcss->i_pos;
}
@@ -561,9 +561,9 @@
*****************************************************************************/
static int libc_read ( dvdcss_t dvdcss, void *p_buffer, int i_blocks )
{
- ssize_t i_size, i_ret, i_ret_blocks;
+ off_t i_size, i_ret, i_ret_blocks;
- i_size = i_blocks * DVDCSS_BLOCK_SIZE;
+ i_size = (off_t)i_blocks * (off_t)DVDCSS_BLOCK_SIZE;
i_ret = read( dvdcss->i_fd, p_buffer, i_size );
if( i_ret < 0 )