#include <string.h>
#include <strings.h>
#include <sys/wait.h>
+#include <stdint.h>
#include <ftw.h>
#include <sys/xattr.h>
LOGL(LOG_SSENGINE, "Handle:%ld , Pos:%u , Size: %u\n", wHandle,
dwPosition, dwSize);
-
- ret = lseek(wHandle, dwPosition, SEEK_SET);
+ if (dwPosition > INT64_MAX) {
+ LOGE("Position value exceeds 64-bit signed range: %u", dwPosition);
+ return E_SS_WRITE_ERROR;
+ }
+ __off64_t position = (__off64_t)dwPosition;
+ ret = lseek(wHandle, position, SEEK_SET);
if (ret < 0) {
LOGE(" lseek failed with return value: %d\n", ret);
LOGL(LOG_SSENGINE, "lseek errno=%d\n", errno);
LOG(" %s: Handle:%ld , Pos:%u , Size: %u", __func__, wHandle,
dwPosition, dwSize);
#endif
- ret = lseek(wHandle, dwPosition, SEEK_SET);
+ if (dwPosition > INT64_MAX) {
+ LOGE("Position value exceeds 64-bit signed range: %u", dwPosition);
+ return E_SS_WRITE_ERROR;
+ }
+ __off64_t position = (__off64_t)dwPosition;
+ ret = lseek(wHandle, position, SEEK_SET);
if (ret < 0) {
LOGE("Handle:%ld , Pos:%u , Size: %u\n", wHandle, dwPosition,
dwSize);