Skip to content

Commit aba23eb

Browse files
committed
Fix sign comparison bugs
1 parent 1419449 commit aba23eb

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed

libctru/source/archive_dev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ archive_seek(struct _reent *r,
763763
}
764764

765765
/* TODO: A better check that prevents overflow. */
766-
if(pos < 0 && offset < -pos)
766+
if(pos < 0 && (s64)offset < -(s64)pos)
767767
{
768768
/* don't allow seek to before the beginning of the file */
769769
r->_errno = EINVAL;

libctru/source/romfs_dev.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ static ssize_t _romfs_read(romfs_mount *mount, u64 offset, void* buffer, u32 siz
5353

5454
static bool _romfs_read_chk(romfs_mount *mount, u64 offset, void* buffer, u32 size)
5555
{
56-
return _romfs_read(mount, offset, buffer, size) == size;
56+
ssize_t res = _romfs_read(mount, offset, buffer, size);
57+
return res >= 0 && (u32)res == size;
5758
}
5859

5960
//-----------------------------------------------------------------------------

libctru/source/services/gspgpu.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -621,9 +621,11 @@ Result GSPGPU_AcquireRight(u8 flags)
621621

622622
Result ret=0;
623623
if(R_FAILED(ret=svcSendSyncRequest(gspGpuHandle)))return ret;
624-
if(R_SUCCEEDED(cmdbuf[1])) gspGpuRight=true;
625624

626-
return cmdbuf[1];
625+
ret = (Result)cmdbuf[1];
626+
if(R_SUCCEEDED(ret)) gspGpuRight=true;
627+
628+
return ret;
627629
}
628630

629631
Result GSPGPU_ReleaseRight(void)
@@ -635,9 +637,11 @@ Result GSPGPU_ReleaseRight(void)
635637

636638
Result ret=0;
637639
if(R_FAILED(ret=svcSendSyncRequest(gspGpuHandle)))return ret;
638-
if(R_SUCCEEDED(cmdbuf[1])) gspGpuRight=false;
639640

640-
return cmdbuf[1];
641+
ret = (Result)cmdbuf[1];
642+
if(R_SUCCEEDED(ret)) gspGpuRight=false;
643+
644+
return ret;
641645
}
642646

643647
Result GSPGPU_ImportDisplayCaptureInfo(GSPGPU_CaptureInfo* captureinfo)

libctru/source/services/soc/soc_common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ s32 _net_convert_error(s32 sock_retval)
9595
if(sock_retval >= 0)
9696
return sock_retval;
9797

98-
if(sock_retval < -sizeof(_net_error_code_map)
98+
if(sock_retval < -(s32)sizeof(_net_error_code_map)
9999
|| !_net_error_code_map[-sock_retval])
100100
return NET_UNKNOWN_ERROR_OFFSET + sock_retval;
101101
return -_net_error_code_map[-sock_retval];

0 commit comments

Comments
 (0)