Userland: ls division by zero.

When the terminal app window became smaller than the longest filename,
a division by zero occured while calculating the offset.
This commit is contained in:
marprok 2019-08-20 20:59:55 +03:00 committed by Andreas Kling
parent c106ec4719
commit d4b7b92492
Notes: sideshowbarker 2024-07-19 12:35:11 +09:00

View file

@ -272,7 +272,9 @@ int do_file_system_object_short(const char* path)
if (!print_filesystem_object_short(pathbuf, name.characters(), &nprinted))
return 2;
int offset = columns % longest_name / (columns / longest_name);
int offset = 0;
if (columns > longest_name)
offset = columns % longest_name / (columns / longest_name);
/* The offset must be at least 2 because:
* - With each file an aditional char is printed e.g. '@','*'.
* - Each filename must be separated by a space.