Skip to content
Snippets Groups Projects
Commit 8f50f134 authored by rswindell's avatar rswindell
Browse files

fread() and fwrite() do not set 'errno' to a meaningful value upon failure,

so remove 'errno' value (and corresponding error strings) from generated
/logged error messages. fseek(), read(), write(), open(), etc. do set errno
to a meaningful value, so we still log errno/strerror() in those failure
cases.
parent 63f7dd8d
No related branches found
No related tags found
No related merge requests found
......@@ -177,9 +177,8 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash
if(xlat!=XLAT_NONE) { /* e.g. XLAT_LZH */
if(smb_fwrite(smb,&xlat,sizeof(xlat),smb->sdt_fp)!=sizeof(xlat)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing body xlat string"
,__FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing body xlat string"
,__FUNCTION__);
retval=SMB_ERR_WRITE;
break;
}
......@@ -188,9 +187,8 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash
xlat=XLAT_NONE; /* xlat string terminator */
if(smb_fwrite(smb,&xlat,sizeof(xlat),smb->sdt_fp)!=sizeof(xlat)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing body xlat terminator"
,__FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing body xlat terminator"
,__FUNCTION__);
retval=SMB_ERR_WRITE;
break;
}
......@@ -198,9 +196,8 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash
if(smb_fwrite(smb,body,bodylen,smb->sdt_fp)!=bodylen) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing body (%ld bytes)"
,"%s writing body (%ld bytes)"
,__FUNCTION__
,get_errno(),STRERROR(get_errno())
,bodylen);
retval=SMB_ERR_WRITE;
break;
......@@ -214,18 +211,16 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash
xlat=XLAT_NONE; /* xlat string terminator */
if(smb_fwrite(smb,&xlat,sizeof(xlat),smb->sdt_fp)!=sizeof(xlat)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing tail xlat terminator"
,__FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing tail xlat terminator"
,__FUNCTION__);
retval=SMB_ERR_WRITE;
break;
}
if(smb_fwrite(smb,tail,taillen-sizeof(xlat),smb->sdt_fp)!=taillen-sizeof(xlat)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing tail (%ld bytes)"
,"%s writing tail (%ld bytes)"
,__FUNCTION__
,get_errno(),STRERROR(get_errno())
,taillen-sizeof(xlat));
retval=SMB_ERR_WRITE;
break;
......@@ -238,9 +233,8 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash
}
if(l%SDT_BLOCK_LEN) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing data padding"
,__FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing data padding"
,__FUNCTION__);
retval=SMB_ERR_WRITE;
break;
}
......
......@@ -83,8 +83,7 @@ long SMBCALL smb_allocdat(smb_t* smb, ulong length, uint16_t refs)
for(l=0;l<blocks;l++)
if(!fwrite(&refs,sizeof(refs),1,smb->sda_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation bytes at offset %ld", __FUNCTION__
,get_errno(),STRERROR(get_errno())
,"%s writing allocation bytes at offset %ld", __FUNCTION__
,((offset/SDT_BLOCK_LEN)+l)*sizeof(refs));
return(SMB_ERR_WRITE);
}
......@@ -123,8 +122,7 @@ long SMBCALL smb_fallocdat(smb_t* smb, ulong length, uint16_t refs)
fflush(smb->sda_fp);
if(l<blocks) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation bytes", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing allocation bytes", __FUNCTION__);
return(SMB_ERR_WRITE);
}
return(offset);
......@@ -178,8 +176,7 @@ int SMBCALL smb_freemsgdat(smb_t* smb, ulong offset, ulong length, uint16_t refs
}
if(smb_fread(smb,&i,sizeof(i),smb->sda_fp)!=sizeof(i)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading allocation record at offset %ld", __FUNCTION__
,get_errno(),STRERROR(get_errno())
,"%s reading allocation record at offset %ld", __FUNCTION__
,sda_offset);
retval=SMB_ERR_READ;
break;
......@@ -206,8 +203,7 @@ int SMBCALL smb_freemsgdat(smb_t* smb, ulong offset, ulong length, uint16_t refs
}
if(!fwrite(&i,sizeof(i),1,smb->sda_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation bytes at offset %ld", __FUNCTION__
,get_errno(),STRERROR(get_errno())
,"%s writing allocation bytes at offset %ld", __FUNCTION__
,sda_offset);
retval=SMB_ERR_WRITE;
break;
......@@ -246,8 +242,7 @@ int SMBCALL smb_incdat(smb_t* smb, ulong offset, ulong length, uint16_t refs)
}
if(smb_fread(smb,&i,sizeof(i),smb->sda_fp)!=sizeof(i)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading allocation record at offset %ld", __FUNCTION__
,get_errno(),STRERROR(get_errno())
,"%s reading allocation record at offset %ld", __FUNCTION__
,((offset/SDT_BLOCK_LEN)+l)*sizeof(i));
return(SMB_ERR_READ);
}
......@@ -258,8 +253,7 @@ int SMBCALL smb_incdat(smb_t* smb, ulong offset, ulong length, uint16_t refs)
}
if(!fwrite(&i,sizeof(i),1,smb->sda_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation record at offset %ld", __FUNCTION__
,get_errno(),STRERROR(get_errno())
,"%s writing allocation record at offset %ld", __FUNCTION__
,((offset/SDT_BLOCK_LEN)+l)*sizeof(i));
return(SMB_ERR_WRITE);
}
......@@ -338,8 +332,7 @@ int SMBCALL smb_freemsghdr(smb_t* smb, ulong offset, ulong length)
for(l=0;l<blocks;l++)
if(!fwrite(&c,1,1,smb->sha_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation record", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing allocation record", __FUNCTION__);
return(SMB_ERR_WRITE);
}
return fflush(smb->sha_fp); /* SMB_SUCCESS == 0 */
......@@ -421,8 +414,7 @@ long SMBCALL smb_allochdr(smb_t* smb, ulong length)
for(l=0;l<blocks;l++)
if(fputc(1,smb->sha_fp)!=1) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation record", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing allocation record", __FUNCTION__);
return(SMB_ERR_WRITE);
}
fflush(smb->sha_fp);
......@@ -453,8 +445,7 @@ long SMBCALL smb_fallochdr(smb_t* smb, ulong length)
for(l=0;l<blocks;l++)
if(!fwrite(&c,1,1,smb->sha_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing allocation record", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing allocation record", __FUNCTION__);
return(SMB_ERR_WRITE);
}
fflush(smb->sha_fp);
......
......@@ -112,8 +112,7 @@ int SMBCALL smb_open(smb_t* smb)
memset(&hdr,0,sizeof(smbhdr_t));
if(smb_fread(smb,&hdr,sizeof(smbhdr_t),smb->shd_fp)!=sizeof(smbhdr_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading header", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading header", __FUNCTION__);
smb_close(smb);
return(SMB_ERR_READ);
}
......@@ -137,8 +136,7 @@ int SMBCALL smb_open(smb_t* smb)
}
if(smb_fread(smb,&(smb->status),sizeof(smbstatus_t),smb->shd_fp)!=sizeof(smbstatus_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading status", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading status", __FUNCTION__);
smb_close(smb);
return(SMB_ERR_READ);
}
......@@ -387,7 +385,7 @@ int SMBCALL smb_getstatus(smb_t* smb)
if(i==sizeof(smbstatus_t))
return(SMB_SUCCESS);
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading status", __FUNCTION__,get_errno(),STRERROR(get_errno()));
,"%s reading status", __FUNCTION__);
return(SMB_ERR_READ);
}
......@@ -414,7 +412,7 @@ int SMBCALL smb_putstatus(smb_t* smb)
if(i==sizeof(smbstatus_t))
return(SMB_SUCCESS);
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing status", __FUNCTION__,get_errno(),STRERROR(get_errno()));
,"%s writing status", __FUNCTION__);
return(SMB_ERR_WRITE);
}
......@@ -542,8 +540,7 @@ int SMBCALL smb_getmsgidx(smb_t* smb, smbmsg_t* msg)
}
if(smb_fread(smb,&msg->idx,sizeof(idxrec_t),smb->sid_fp)!=sizeof(idxrec_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading index at offset %ld (byte %lu)", __FUNCTION__
,get_errno(),STRERROR(get_errno())
,"%s reading index at offset %ld (byte %lu)", __FUNCTION__
,msg->offset,byte_offset);
return(SMB_ERR_READ);
}
......@@ -570,8 +567,8 @@ int SMBCALL smb_getmsgidx(smb_t* smb, smbmsg_t* msg)
}
if(smb_fread(smb,&idx,sizeof(idxrec_t),smb->sid_fp)!=sizeof(idxrec_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading index at offset %lu (byte %lu)", __FUNCTION__
,get_errno(),STRERROR(get_errno()),l,l*sizeof(idxrec_t));
,"%s reading index at offset %lu (byte %lu)", __FUNCTION__
,l,l*sizeof(idxrec_t));
return(SMB_ERR_READ);
}
if(bot==top-1 && idx.number!=msg->hdr.number) {
......@@ -614,8 +611,7 @@ int SMBCALL smb_getfirstidx(smb_t* smb, idxrec_t *idx)
}
if(smb_fread(smb,idx,sizeof(idxrec_t),smb->sid_fp)!=sizeof(idxrec_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading first index", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading first index", __FUNCTION__);
return(SMB_ERR_READ);
}
return(SMB_SUCCESS);
......@@ -648,8 +644,7 @@ int SMBCALL smb_getlastidx(smb_t* smb, idxrec_t *idx)
}
if(smb_fread(smb,idx,sizeof(idxrec_t),smb->sid_fp)!=sizeof(idxrec_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading last index", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading last index", __FUNCTION__);
return(SMB_ERR_READ);
}
return(SMB_SUCCESS);
......@@ -974,8 +969,7 @@ int SMBCALL smb_getmsghdr(smb_t* smb, smbmsg_t* msg)
msg->offset=offset;
if(smb_fread(smb,&msg->hdr,sizeof(msghdr_t),smb->shd_fp)!=sizeof(msghdr_t)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading msg header", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading msg header", __FUNCTION__);
return(SMB_ERR_READ);
}
if(memcmp(msg->hdr.id,SHD_HEADER_ID,LEN_HEADER_ID)) {
......@@ -1008,8 +1002,8 @@ int SMBCALL smb_getmsghdr(smb_t* smb, smbmsg_t* msg)
if(smb_fread(smb,&msg->dfield[i],sizeof(dfield_t),smb->shd_fp)!=sizeof(dfield_t)) {
smb_freemsgmem(msg);
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading data field %d", __FUNCTION__
,get_errno(),STRERROR(get_errno()),i);
,"%s reading data field %d", __FUNCTION__
,i);
return(SMB_ERR_READ);
}
i++;
......@@ -1043,8 +1037,7 @@ int SMBCALL smb_getmsghdr(smb_t* smb, smbmsg_t* msg)
if(smb_fread(smb,&msg->hfield[i],sizeof(hfield_t),smb->shd_fp)!=sizeof(hfield_t)) {
smb_freemsgmem(msg);
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading header field", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading header field", __FUNCTION__);
return(SMB_ERR_READ);
}
l+=sizeof(hfield_t);
......@@ -1063,8 +1056,7 @@ int SMBCALL smb_getmsghdr(smb_t* smb, smbmsg_t* msg)
!=(size_t)msg->hfield[i].length) {
smb_freemsgmem(msg);
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' reading header field data", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s reading header field data", __FUNCTION__);
return(SMB_ERR_READ);
}
set_convenience_ptr(msg,msg->hfield[i].type,msg->hfield_dat[i]);
......@@ -1781,8 +1773,7 @@ int SMBCALL smb_putmsgidx(smb_t* smb, smbmsg_t* msg)
}
if(!fwrite(&msg->idx,sizeof(idxrec_t),1,smb->sid_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing index", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing index", __FUNCTION__);
return(SMB_ERR_WRITE);
}
return fflush(smb->sid_fp); /* SMB_SUCCESS == 0 */
......@@ -1842,8 +1833,7 @@ int SMBCALL smb_putmsghdr(smb_t* smb, smbmsg_t* msg)
/************************************************/
if(!fwrite(&msg->hdr,sizeof(msghdr_t),1,smb->shd_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing fixed portion of header record", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing fixed portion of header record", __FUNCTION__);
return(SMB_ERR_WRITE);
}
......@@ -1853,8 +1843,7 @@ int SMBCALL smb_putmsghdr(smb_t* smb, smbmsg_t* msg)
for(i=0;i<msg->hdr.total_dfields;i++)
if(!fwrite(&msg->dfield[i],sizeof(dfield_t),1,smb->shd_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing data field", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing data field", __FUNCTION__);
return(SMB_ERR_WRITE);
}
/*******************************************/
......@@ -1863,15 +1852,13 @@ int SMBCALL smb_putmsghdr(smb_t* smb, smbmsg_t* msg)
for(i=0;i<msg->total_hfields;i++) {
if(!fwrite(&msg->hfield[i],sizeof(hfield_t),1,smb->shd_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing header field", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing header field", __FUNCTION__);
return(SMB_ERR_WRITE);
}
if(msg->hfield[i].length /* more then 0 bytes long */
&& !fwrite(msg->hfield_dat[i],msg->hfield[i].length,1,smb->shd_fp)) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' writing header field data", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s writing header field data", __FUNCTION__);
return(SMB_ERR_WRITE);
}
}
......@@ -1879,8 +1866,7 @@ int SMBCALL smb_putmsghdr(smb_t* smb, smbmsg_t* msg)
while(hdrlen%SHD_BLOCK_LEN) {
if(fputc(0,smb->shd_fp)!=0) {
safe_snprintf(smb->last_error,sizeof(smb->last_error)
,"%s %d '%s' padding header block", __FUNCTION__
,get_errno(),STRERROR(get_errno()));
,"%s padding header block", __FUNCTION__);
return(SMB_ERR_WRITE); /* pad block with NULL */
}
hdrlen++;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment