From c0887806c54985a22e7a6688fee113dd17ceaeaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Tue, 16 Aug 2011 11:19:29 +0100 Subject: Related: fdo#39376/fdo#34880 short fread isn't an error when its eof Signed-off-by: Petr Mladek --- ucb/source/ucp/ftp/ftpinpstr.cxx | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/ucb/source/ucp/ftp/ftpinpstr.cxx b/ucb/source/ucp/ftp/ftpinpstr.cxx index c1f7558d45..87af4c393c 100644 --- a/ucb/source/ucp/ftp/ftpinpstr.cxx +++ b/ucb/source/ucp/ftp/ftpinpstr.cxx @@ -52,8 +52,6 @@ FTPInputStream::FTPInputStream(FILE* tmpfl) : m_tmpfl(tmpfl ? tmpfl : tmpfile()) { fseek(m_tmpfl,0,SEEK_END); -// fpos_t pos; -// fgetpos(m_tmpfl,&pos); long pos = ftell(m_tmpfl); rewind(m_tmpfl); m_nLength = sal_Int64(pos); @@ -107,20 +105,12 @@ sal_Int32 SAL_CALL FTPInputStream::readBytes(Sequence< sal_Int8 >& aData, if(0 <= nBytesToRead && aData.getLength() < nBytesToRead) aData.realloc(nBytesToRead); -// fpos_t bpos,epos; - -// fgetpos(m_tmpfl,&bpos); -// fread(aData.getArray(),nBytesToRead,1,m_tmpfl); -// fgetpos(m_tmpfl,&epos); - long bpos,epos; - - bpos = ftell(m_tmpfl); - if (fread(aData.getArray(),nBytesToRead,1,m_tmpfl) != 1) + size_t nWanted = static_cast(nBytesToRead); + size_t nRead = fread(aData.getArray(), 1, nWanted, m_tmpfl); + if (nRead != nWanted && ferror(m_tmpfl)) throw IOException(); - epos = ftell(m_tmpfl); - - return sal_Int32(epos-bpos); + return static_cast(nRead); } -- cgit v1.2.1