AmendHub

Download (as of this amendment):

jcs

/

subtext

/

amendments

/

624

zmodem: Minor fixes


jcs made amendment 624 9 months ago
--- zmodem.c Mon May 1 21:52:46 2023 +++ zmodem.c Thu Dec 11 21:35:54 2025 @@ -647,7 +647,7 @@ ZSendFileDat(struct zmodem_session *zs) strlcpy((char *)zs->PktOut, zs->file_name, sizeof(zs->PktOut)); zs->PktOutCount = strlen((char *)zs->PktOut); zs->CRC = 0; - for (i = 0; i <= zs->PktOutCount - 1; i++) + for (i = 0; i < zs->PktOutCount; i++) zs->CRC = UpdateCRC(zs->PktOut[i], zs->CRC); ZPutBin(zs, &(zs->PktOutCount), 0); zs->CRC = UpdateCRC(0, zs->CRC); @@ -767,6 +767,8 @@ ZSendDataDat(struct zmodem_session *zs) bool ZInit(struct zmodem_session *zs) { + char c[4]; + zs->CtlEsc = false; zs->MaxDataLen = ZMODEM_BLOCK_SIZE; zs->WinSize = 32767; @@ -774,15 +776,18 @@ ZInit(struct zmodem_session *zs) if (zs->ZMode == IdZAutoR || zs->ZMode == IdZAutoS) { if (zs->ZMode == IdZAutoR) { zs->ZMode = IdZReceive; - session_output(zs->session, (const char *)'0', 1); + c[0] = '0'; + session_output(zs->session, c, 1); } else { zs->ZMode = IdZSend; - session_output(zs->session, (const char *)'1', 1); + c[0] = '1'; + session_output(zs->session, c, 1); } - session_output(zs->session, (const char *)'0', 1); - session_output(zs->session, (const char *)'B', 1); - session_output(zs->session, (const char *)ZDLE, 1); - session_output(zs->session, (const char *)ZPAD, 1); + c[0] = '0'; + c[1] = 'B'; + c[2] = ZDLE; + c[3] = ZPAD; + session_output(zs->session, c, 4); } zs->PktOutCount = 0; @@ -1464,7 +1469,11 @@ ZParse(struct zmodem_session *zs) } zs->Quoted = false; } - + + if (zs->PktInPtr >= sizeof(zs->PktIn)) { + zs->ZPktState = Z_PktGetPAD; + break; + } zs->PktIn[zs->PktInPtr] = b; zs->PktInPtr++; zs->PktInCount--;