Menu

#17 problem with daveReadSZL in case of timeout

v1.0 (example)
open
nobody
None
5
2013-05-14
2013-05-14
No

In function daveReadSZL, after the call of daveBuildAndSendPDU the returned PDU p2 is used, even if an error like a timeout occured and p2 is not initialized.

Original code beginning at line 1127 in nodave.c

~~~~~~~~~
res=daveBuildAndSendPDU(dc, &p2,pa, sizeof(pa), da, sizeof(da));

len=0;
pa7=p2.param[7];

// pa6=p2.param[6];
while (p2.param[9]!=0) {
....

Better would be 
res=daveBuildAndSendPDU(dc, &p2,pa, sizeof(pa), da, sizeof(da));
if (res!=daveResOK) 
    return res;

len=0;
pa7=p2.param[7];

// pa6=p2.param[6];
while (p2.param[9]!=0) {
....
~~~~~~~~

At least, there are some more functions which have a problem if daveBuildAndSendPDU gets an error, like daveGetBlockInfo, daveListBlocks

Discussion


Log in to post a comment.