framebuffer: handle an edge case

This commit is contained in:
Matheus
2022-09-24 15:14:20 -03:00
parent 313abaeb9a
commit 619b95c7f1
+7 -3
View File
@@ -18,6 +18,10 @@ static int devchecks(int fb, size_t* count, size_t offset){
size_t end = fbs[fb]->pitch * fbs[fb]->height;
if(offset >= end){
*count = 0;
}
if(*count + offset > end)
*count = end - offset;
@@ -32,9 +36,9 @@ int read(int* error, int minor, void* buff, size_t count, size_t offset){
if(*error)
return -1;
memcpy(buff, fbs[minor]->address + offset, count);
return count;
}
@@ -45,7 +49,7 @@ int write(int* error, int minor, void* buff, size_t count, size_t offset){
if(*error)
return -1;
memcpy(fbs[minor]->address + offset, buff, count);
return count;