summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-01-10LibGUI+FileManager: Misc tweaks courtesy of clang-formatSergey Bugaev
2020-01-10LibGUI+FileManager: Merge GDirectoryModel into GFileSystemModelSergey Bugaev
We used to have two different models for displaying file system contents: the FileManager-grade table-like directory model, which exposed rich data (such as file icons with integrated image previews) about contents of a single directory, and the tree-like GFileSystemModel, which only exposed a tree of file names with very basic info about them. This commit unifies the two. The new GFileSystemModel can be used both as a tree-like and as a table-like model, or in fact in both ways simultaneously. It exposes rich data about a file system subtree rooted at the given root. The users of the two previous models are all ported to use this new model.
2020-01-10LibGUI: Add GAbstractView::activate_selected()Sergey Bugaev
This is a nice little utility to activate all the selected items, which is what you usually want to do.
2020-01-10LibGUI: Fix GModel::is_valid() behavior for tree-like modelsSergey Bugaev
2020-01-10LibGUI: Fix tree view column positioning when some columns are hiddenSergey Bugaev
2020-01-10Kernel: Remove SmapDisablers in fchmod() and fchown()Andreas Kling
2020-01-10Kernel: unlink() should not follow symlinksAndreas Kling
2020-01-10rm: When invoked on a symlink, remove the symlink itselfAndreas Kling
2020-01-10LibC: Remove useless retry loop in connect_to_lookup_server()Andreas Kling
2020-01-10TmpFS: Synthesize "." and ".." in traverse_as_directory()Andreas Kling
As Sergey pointed out, it's silly to have proper entries for . and .. in TmpFS when we can just synthesize them on the fly. Note that we have to tolerate removal of . and .. via remove_child() to keep VFS::rmdir() happy.
2020-01-10Kernel: Enable SMAP protection during the execve() syscallAndreas Kling
The userspace execve() wrapper now measures all the strings and puts them in a neat and tidy structure on the stack. This way we know exactly how much to copy in the kernel, and we don't have to use the SMAP-violating validate_read_str(). :^)
2020-01-10SystemServer: Expose service socket permissions to RPC clientsAndreas Kling
2020-01-10ProcFS: Don't expose kernel-only regions to users via /proc/PID/vmAndreas Kling
The superuser is still allowed to see them, but kernel-only VM regions are now excluded from /proc/PID/vm.
2020-01-10Kernel: Page allocation should not use memset_user() when zeroingAndreas Kling
We're not zeroing new pages through a userspace address, so this should not use memset_user().
2020-01-10Kernel+LibELF: Enable SMAP protection during non-syscall exec()Andreas Kling
When loading a new executable, we now map the ELF image in kernel-only memory and parse it there. Then we use copy_to_user() when initializing writable regions with data from the executable. Note that the exec() syscall still disables SMAP protection and will require additional work. This patch only affects kernel-originated process spawns.
2020-01-09Base: Let's make home directories 700 to keep things private :^)Andreas Kling
2020-01-09ls: Widen the user and group fields a little bitAndreas Kling
I didn't like looking at /tmp/portal now that lookup:lookup owns one of the sockets there :^)
2020-01-09Base: Add a "lookup" user+group that runs LookupServerAndreas Kling
LookupServer now runs as lookup:lookup, allowing connections from other members of the "lookup" group. This is enforced through file system permissions by having the service socket (/tmp/portal/lookup) be mode 0660. Now the LookupServer program can't overwrite other people's files if it starts misbehaving. That's pretty cool :^)
2020-01-09SystemServer: Allow specifying per-service socket file permissionsAndreas Kling
2020-01-09LibC: Fail name lookups immediately if we can't connect to LookupServerAndreas Kling
2020-01-09Kernel: Don't apply process umask to the LocalSocket prebind modeAndreas Kling
2020-01-09Kernel: connect() should EISCONN on already-connected LocalSocketAndreas Kling
This was causing us to try and accept the same client socket multiple times on the server side, tripping an assertion in Socket::accept().
2020-01-09Build: Add fast build mode that does not clean everything or run testsDov Alperin
Passing the "-f" or "--fast" option to the ./makeall.sh script will build everything without cleaning first, and then will skip tests.
2020-01-09Kernel: Removed an unused global variableAndreas Kling
2020-01-09Kernel: Rename {ss,esp}_if_crossRing to userspace_{ss,esp}Andreas Kling
These were always so awkwardly named.
2020-01-09Kernel: Prune a bunch of removed syscalls from the listAndreas Kling
2020-01-09Kernel: Make some static keyboard data constAndreas Kling
This moves it to the kernel's .rodata section which we write protect in MemoryManager initialization.
2020-01-09Kernel: Take path+length in the unlink() and umount() syscallsAndreas Kling
2020-01-09Kernel: Ignore closed fd's when considering select() unblockAndreas Kling
This fixes a null RefPtr deref (which asserts) in the scheduler if a file descriptor being select()'ed is closed by a second thread while blocked in select(). Test: Kernel/null-deref-close-during-select.cpp
2020-01-09Kernel: Remove unused variable Thread::m_userspace_stack_regionAndreas Kling
2020-01-09LibELF: Remove DynamicSection from ELFImageAndrew Kaster
Since ELFDynamicObject needs the actual virtual address of the .dynamic section in the loaded image, and not the file offset like we assumed before, due to MAP_PRIVATE secretly giving us a MAP_SHARED, we can remove all of the Dynamic* code from ELFImage. ELFDynamicLoader only needs ELFImage to get the Program headers at this point. More consolidation opportunities seem likely in the future.
2020-01-09LibELF: Map .text segment with MAP_ANONYMOUS for shared objectsAndrew Kaster
We need to workaround the fact that MAP_PRIVATE when passed a file descriptor doesn't work the way we expect. We can't change the permissions on our mmap to PROT_WRITE if the original executable doesn't have PROT_WRITE. Because of this, we need to construct our ELFDynamicObject using the actual virtual address of the .dynamic section, instead of using the offset into the ELFImage that was actually getting modified by accident ...somehow. Not clear what was going on.
2020-01-09Kernel: mmap(..., MAP_PRIVATE, fd, offset) is not supportedAndrew Kaster
Make mmap return -ENOTSUP in this case to make sure users don't get confused and think they're using a private mapping when it's actually shared. It's currenlty not possible to open a file and mmap it MAP_PRIVATE, and change the perms of the private mapping to ones that don't match the permissions of the underlying file.
2020-01-08LibVT: Relayout TerminalWidget on font changeAndreas Kling
We were not recomputing the internal dimensions after a font changed, which caused things to look very off. It's still not perfect as we're always using the same (small) font for bold text, which obviously sticks out like a sore pinky when the rest of the terminal text is large.
2020-01-08Terminal: Put the Font menu items in an action group :^)Andreas Kling
2020-01-08SystemMonitor: Put the Frequency menu items in an action groupAndreas Kling
This makes them look like radio buttons in the menu, which is a very nice increase in polish. :^)
2020-01-08WindowServer+LibGUI: Paint exclusive actions as radio buttons in menusAndreas Kling
Actions that are checkable and members of a GActionGroup will now be painted with a radio button appearance in menus.
2020-01-08LibDraw+LibGUI: Move radio button painting into StylePainterAndreas Kling
This will allow WindowServer to draw radio buttons :^)
2020-01-08disk_benchmark: Unbreak this utility now that read() of O_WRONLY failsAndreas Kling
2020-01-08Meta: Reference CodingStyle doc in CONTRIBUTING.mdDov Alperin
2020-01-08IPv4: Randomize the first TCP sequence numberAndreas Kling
Fixes #185.
2020-01-08LibC: Don't leave /etc/passwd open in getlogin()Andreas Kling
2020-01-08Kernel: open() and openat() should ignore non-permission bits in modeAndreas Kling
2020-01-08Kernel: Opening a file with O_TRUNC should update mtimeAndreas Kling
2020-01-08Kernel: ftruncate() should update mtimeAndreas Kling
2020-01-08truncate: Unbreak this utility after ftruncate() syscall fixesAndreas Kling
2020-01-08Kernel: Remove unused syscall for setting the signal maskAndreas Kling
2020-01-08Kernel: Fix SMAP violation in join_thread()Andreas Kling
2020-01-08LibGUI: clicking and dragging one item will drag other items in selectionDov Alperin
Previously if more than one item was selected clicking on one of them and dragging would de-select everything that is not the one that was clicked on. Now, if more than one items are selected and there is a mousedown it goes into a "mightdrag" state. The user can then perform a drag, if they don't everything that is not the item being clicked gets unselected in the mouseup event, mimicking the previous behavior.
2020-01-08LibGUI: separate file names with commas in the drag operation textDov Alperin