From: Subrata <sub...@us...> - 2007-03-28 04:02:54
|
Update of /cvsroot/ltp/ltp/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv23940/ltp/lib Modified Files: write_log.c Log Message: Fix for Bug no. [ 1671695 ] "Check return codes everywhere" as pointed out by "Markus Elfring" Index: write_log.c =================================================================== RCS file: /cvsroot/ltp/ltp/lib/write_log.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** write_log.c 22 Jun 2006 04:28:32 -0000 1.7 --- write_log.c 28 Mar 2007 04:02:46 -0000 1.8 *************** *** 227,235 **** reclen += 2; ! write(wfile->w_afd, wbuf, reclen); ! offset = lseek(wfile->w_afd, 0, SEEK_CUR) - reclen; } else { ! lseek(wfile->w_rfd, offset, SEEK_SET); ! write(wfile->w_rfd, wbuf, reclen); } --- 227,258 ---- reclen += 2; ! if ( write(wfile->w_afd, wbuf, reclen) == -1 ) { ! sprintf(Wlog_Error_String, ! "Could not write log - write(%s, %s, %d) failed: %s\n", ! wfile->w_file, wbuf, reclen, strerror(errno)); ! return -1; ! } else { ! offset = lseek(wfile->w_afd, 0, SEEK_CUR) - reclen; ! if ( offset == -1 ) { ! sprintf(Wlog_Error_String, ! "Could not reposition file pointer - lseek(%s, 0, SEEK_CUR) failed: %s\n", ! wfile->w_file, strerror(errno)); ! return -1; ! } ! } } else { ! if ( (lseek(wfile->w_rfd, offset, SEEK_SET)) == -1 ) { ! sprintf(Wlog_Error_String, ! "Could not reposition file pointer - lseek(%s, %d, SEEK_SET) failed: %s\n", ! wfile->w_file, offset, strerror(errno)); ! return -1; ! } else { ! if ( (write(wfile->w_rfd, wbuf, reclen)) == -1 ) { ! sprintf(Wlog_Error_String, ! "Could not write log - write(%s, %s, %d) failed: %s\n", ! wfile->w_file, wbuf, reclen, strerror(errno)); ! return -1; ! } ! } } *************** *** 252,257 **** long data; { ! int fd, leftover, nbytes, offset, recnum, reclen, rval; ! char buf[BSIZE*32], *bufend, *cp, *bufstart; char albuf[WLOG_REC_MAX_SIZE]; struct wlog_rec wrec; --- 275,280 ---- long data; { ! int fd, leftover, nbytes, offset, recnum, reclen, rval; ! char buf[BSIZE*32], *bufend, *cp, *bufstart; char albuf[WLOG_REC_MAX_SIZE]; struct wlog_rec wrec; *************** *** 263,268 **** */ ! lseek(fd, 0, SEEK_END); offset = lseek(fd, 0, SEEK_CUR); bufend = buf + sizeof(buf); --- 286,302 ---- */ ! if ( (lseek(fd, 0, SEEK_END)) == -1 ) { ! sprintf(Wlog_Error_String, ! "Could not reposition file pointer - lseek(%s, 0, SEEK_END) failed: %s\n", ! wfile->w_file, strerror(errno)); ! return -1; ! } offset = lseek(fd, 0, SEEK_CUR); + if ( (offset == -1) ) { + sprintf(Wlog_Error_String, + "Could not reposition file pointer - lseek(%s, 0, SEEK_CUR) failed: %s\n", + wfile->w_file, strerror(errno)); + return -1; + } bufend = buf + sizeof(buf); *************** *** 287,292 **** * Move to the proper file offset, and read into buf */ - lseek(fd, offset, SEEK_SET); nbytes = read(fd, bufstart, bufend - bufstart - leftover); --- 321,331 ---- * Move to the proper file offset, and read into buf */ + if ( (lseek(fd, offset, SEEK_SET)) ==-1 ) { + sprintf(Wlog_Error_String, + "Could not reposition file pointer - lseek(%s, %d, SEEK_SET) failed: %s\n", + wfile->w_file, offset, strerror(errno)); + return -1; + } nbytes = read(fd, bufstart, bufend - bufstart - leftover); |