problem with daveReadSZL in case of timeout
Status: Beta
Brought to you by:
lettoz
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