diff --git a/src/sbbs3/sftp.cpp b/src/sbbs3/sftp.cpp index 2cb5fb05f94de103966db4b6971ae0beb1080437..0a6fd98f4019846ab66defdb97db9c00ab4d9d77 100644 --- a/src/sbbs3/sftp.cpp +++ b/src/sbbs3/sftp.cpp @@ -502,11 +502,11 @@ parse_file_handle(sbbs_t *sbbs, sftp_filehandle_t handle) constexpr size_t nfdes = sizeof(sbbs->sftp_filedes) / sizeof(sbbs->sftp_filedes[0]); long tmp = strtol(reinterpret_cast<char *>(handle->c_str), nullptr, 10); - if (tmp == 0) + if (tmp <= 0) return UINT_MAX; if (tmp > UINT_MAX) return UINT_MAX; - if (tmp > nfdes) + if (static_cast<size_t>(tmp) > nfdes) return UINT_MAX; if (sbbs->sftp_filedes[tmp - 1] == nullptr) return UINT_MAX; @@ -523,11 +523,11 @@ parse_dir_handle(sbbs_t *sbbs, sftp_dirhandle_t handle) if (memcmp(handle->c_str, "D:", 2) != 0) return UINT_MAX; long tmp = strtol(reinterpret_cast<char *>(handle->c_str + 2), nullptr, 10); - if (tmp == 0) + if (tmp <= 0) return UINT_MAX; if (tmp > UINT_MAX) return UINT_MAX; - if (tmp > nfdes) + if (static_cast<size_t>(tmp) > nfdes) return UINT_MAX; if (sbbs->sftp_dirdes[tmp - 1] == nullptr) return UINT_MAX; diff --git a/src/sftp/sftp_client.c b/src/sftp/sftp_client.c index 958d44e8ac63805e49eb0a99bbb50d7aa17cb5ce..bb2ba791527ead7d44fd8e6b8b12b4764937b182 100644 --- a/src/sftp/sftp_client.c +++ b/src/sftp/sftp_client.c @@ -30,11 +30,13 @@ appendfhandle(sftpc_state_t state, sftp_filehandle_t handle) return appendstring(state, (sftp_str_t)handle); } +#ifdef NOTYET static bool appenddhandle(sftpc_state_t state, sftp_dirhandle_t handle) { return appendstring(state, (sftp_str_t)handle); } +#endif static bool cappendheader(sftpc_state_t state, uint8_t type)