Reduce range of seek in paranoia_seek to be int32_t. CDDA's definitely live within this range. off_t is influenced by _FILE_OFFSET_BITS and can cause problems on a 32-bit system where _FILE_OFFSET_BITS is set to 64. See Bastiaan Timmer's posting to libcdio-help on July 7, 2011.

This commit is contained in:
rocky
2011-07-08 21:15:29 -04:00
parent 0c0a16befd
commit 5ac9df4db8
2 changed files with 6 additions and 8 deletions

View File

@@ -1,7 +1,6 @@
/*
$Id: paranoia.h,v 1.15 2008/03/25 15:59:09 karl Exp $
Copyright (C) 2004, 2005, 2006, 2007, 2008 Rocky Bernstein <rocky@gnu.org>
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011
Rocky Bernstein <rocky@gnu.org>
Copyright (C) 1998 Monty xiphmont@mit.edu
This program is free software: you can redistribute it and/or modify
@@ -126,7 +125,8 @@ extern "C" {
@param whence like corresponding parameter in libc's lseek, e.g.
SEEK_SET or SEEK_END.
*/
extern lsn_t cdio_paranoia_seek(cdrom_paranoia_t *p, off_t seek, int whence);
extern lsn_t cdio_paranoia_seek(cdrom_paranoia_t *p, int32_t seek,
int whence);
/*!
Reads the next sector of audio data and returns a pointer to a full

View File

@@ -1,7 +1,5 @@
/*
$Id: paranoia.c,v 1.27 2008/04/17 17:39:48 karl Exp $
Copyright (C) 2004, 2005, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
Copyright (C) 2004, 2005, 2006, 2008, 2011 Rocky Bernstein <rocky@gnu.org>
Copyright (C) 1998 Monty xiphmont@mit.edu
This program is free software: you can redistribute it and/or modify
@@ -2472,7 +2470,7 @@ paranoia_modeset(cdrom_paranoia_t *p, int mode_flags)
SEEK_SET or SEEK_END.
*/
lsn_t
paranoia_seek(cdrom_paranoia_t *p, off_t seek, int whence)
paranoia_seek(cdrom_paranoia_t *p, int32_t seek, int whence)
{
long sector;
long ret;