1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:38:11 +00:00

Kernel: Use u64 instead of size_t in the STORAGE_DEVICE_GET_SIZE ioctl

This ensures the device size doesn't get truncated on i686.
This commit is contained in:
Idan Horowitz 2022-01-25 20:29:02 +02:00
parent d1ed554dc8
commit 971ab3b919
2 changed files with 3 additions and 4 deletions

View file

@ -189,8 +189,8 @@ ErrorOr<void> StorageDevice::ioctl(OpenFileDescription&, unsigned request, Users
{ {
switch (request) { switch (request) {
case STORAGE_DEVICE_GET_SIZE: { case STORAGE_DEVICE_GET_SIZE: {
size_t disk_size = m_max_addressable_block * block_size(); u64 disk_size = m_max_addressable_block * block_size();
return copy_to_user(static_ptr_cast<size_t*>(arg), &disk_size); return copy_to_user(static_ptr_cast<u64*>(arg), &disk_size);
break; break;
} }
case STORAGE_DEVICE_GET_BLOCK_SIZE: { case STORAGE_DEVICE_GET_BLOCK_SIZE: {

View file

@ -10,11 +10,10 @@
#include <fcntl.h> #include <fcntl.h>
#include <stdio.h> #include <stdio.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <unistd.h>
static void fetch_ioctl(int fd, int request) static void fetch_ioctl(int fd, int request)
{ {
size_t value; u64 value;
if (ioctl(fd, request, &value) < 0) { if (ioctl(fd, request, &value) < 0) {
perror("ioctl"); perror("ioctl");
exit(1); exit(1);