Age | Commit message (Collapse) | Author |
|
|
|
Just like it always is in libnetfs' normal netfs_S_dir_lookup.
* trans/fakeroot.c (netfs_S_dir_lookup): Call netfs_validate_stat after
calling new_node.
|
|
ports_manage_port_operations_multithread uses two values, totalthreads
and nreqthreads, to manage the threads it creates. Previously a lock
was used to synchronize the access to them. Use atomic operations
instead.
* libports/manage-multithread.c (ports_manage_port_operations_multithread):
Use atomic operations instead of a lock to synchronize the access to
totalthreads and nreqthreads.
|
|
* libihash/ihash.c: Clean up the included header files.
* libshouldbeinlibc/cacheq.c: Likewise.
* libshouldbeinlibc/canon-host.c: Likewise.
* libshouldbeinlibc/fsysops.c: Likewise.
* libshouldbeinlibc/idvec-auth.c: Likewise.
* libshouldbeinlibc/idvec.c: Likewise.
* libshouldbeinlibc/idvec.h: Likewise.
* libshouldbeinlibc/localhost.c: Likewise.
* libshouldbeinlibc/maptime.c: Likewise.
* libshouldbeinlibc/nullauth.c: Likewise.
* libshouldbeinlibc/portxlate.c: Likewise.
* libshouldbeinlibc/shared-dom.c: Likewise.
* libshouldbeinlibc/ugids-argp.c: Likewise.
* libshouldbeinlibc/ugids-auth.c: Likewise.
* libshouldbeinlibc/ugids-imply.c: Likewise.
* libshouldbeinlibc/ugids-merge.c: Likewise.
* libshouldbeinlibc/ugids-subtract.c: Likewise.
* libshouldbeinlibc/ugids-verify-auth.c: Likewise.
* libshouldbeinlibc/ugids-verify.c: Likewise.
* libshouldbeinlibc/ugids.c: Likewise.
* libshouldbeinlibc/ugids.h: Likewise.
* libshouldbeinlibc/wire.c: Likewise.
|
|
Bother, said Pooh.
* Makefile: Do not remove -Wall from CFLAGS.
|
|
Previously the increment was outside the loop body, turning it into a
dead increment.
Move the increment into the loop body as it is done in the true branch
above. This fixes the offsets recorded in the default_pager_page_t
objects.
Found using the Clang Static Analyzer.
* mach-defpager/default_pager.c (pager_pages): Fix returned page offsets.
|
|
Found using the Clang Static Analyzer.
* libshouldbeinlibc/timefmt.c (fmt_past_time): Fix dead assignment,
normalize adjacent white space.
|
|
Found using the Clang Static Analyzer.
* ext2fs/dir.c (diskfs_lookup_hard): Fix error handling.
|
|
Found using the Clang Static Analyzer.
* libdiskfs/dir-renamed.c (diskfs_rename_dir): Fix error handling.
|
|
Found using the Clang Static Analyzer.
* libdiskfs/io-write.c (diskfs_S_io_write): Remove dead assignment.
|
|
Implement the --search switch of portinfo. The feature was suggested
in the source code and partly implemented. portinfo --search locates
the target ports (or all ports) in any other process and prints the
port mapping and information about the port in the remote process.
* utils/Makefile: Link portinfo against libps.
* utils/portinfo.c (options): Enable --search option.
(search_for_port): New function.
(search_for_ports): Likewise.
(main): Call search_for_port{,s} as appropiate.
|
|
Both task ports are deallocated in the destructor, so they must be
referenced in the constructor.
* libshouldbeinlibc/portxlate.c (port_name_xlator_create): Fix
reference counting.
|
|
* mach-defpager/default_pager.c: Include errno.h.
|
|
Previously count_up and store_pid were defined inside
S_proc_getallpids. Move them out of that function and declare them
static.
* proc/mgt.c: Turn count_up and store_pid into normal functions.
|
|
hurdio_mdmctl allows one to set and clear bits from the modem control
bit vector. However, plausible code paths exist that leave oldbits
uninitialized. Fix this by returning an error instead if retrieving
the oldbits failed and the bit set or clear operation was selected.
Found using the Clang Static Analyzer.
* term/hurdio.c (hurdio_mdmctl): Fix error handling.
|
|
Found using the Clang Static Analyzer.
* mach-defpager/default_pager.c (seqnos_memory_object_terminate):
Remove unused variables request_refs and name_refs.
|
|
* mach-defpager/default_pager.c (dealloc_direct): Move function
definition outside of pager_truncate.
|
|
Previously a plausible execution path existed so the value of err was
undefined at the end of the function, making the function return
arbitrary error values. Fix this by initializing it to 0.
Found using the Clang Static Analyzer.
* auth/auth.c (S_auth_server_authenticate): Initialize err to 0.
|
|
Found using the Clang Static Analyzer.
* init/init.c (process_signal): Fix memory leak.
|
|
Found using the Clang Static Analyzer.
* proc/mgt.c (S_proc_exception_raise): Fix error propagation.
|
|
If we have to create a new process group, we have to do this before
leaving the current one. The current process group is deallocated if
the process is the last process in that group. Likewise, if the
current group was the last group in the current groups session, the
session is deallocated.
Found using the Clang Static Analyzer.
* proc/pgrp.c (S_proc_setpgrp): Fix use-after-free error.
|
|
* proc/proc.h (genpid): Fix declaration.
|
|
Remove the declaration of count_up and strore_pid from proc.h. The
functions are defined as nested functions in S_proc_getallpids, there
is no need to declare them. Furthermore, the declaration does not
match the definition.
* proc/proc.h: Remove declaration of count_up and strore_pid.
|
|
This switch makes settrans write the pid file of the active translator
it starts to a file. This makes the pid easily retrievable for test
suites.
* utils/settrans.c (options): Add --pid-file.
(main): Add variable pid_file.
(parse_opt): Handle --pid-file switch.
(open_node): Write pid file.
|
|
Previously the number of total threads and the number of unused
threads was wrong if at one point the creation of a thread failed. Fix
this by decrementing both counters that were previously optimistically
incremented. Adjust the comment accordingly.
* libports/manage-multithread.c (ports_manage_port_operations_multithread):
Fix the thread counts in case the thread creation fails.
|
|
Some files were not normalized. In console/motd.UTF8 the additional
newline is intentional. Empty files were excluded as well.
|
|
Unlike other devices, sending packets on the loopback device causes the
netif_rx() function to be called from the net_bh worker thread. Since
the thread is already running, it can't wake itself up when calling
mark_bh(). Use a new variable to indicate when net_bh work is pending.
* glue-include/linux/interrupt.h (net_bh_raised): Declare new global
variable.
(mark_bh): Set net_bh_raised to 1 before waking up net_bh worker thread.
* loopback.c (loopback_xmit): Add comment giving details about locking.
* sched.c (net_bh_raised): Define new global variable.
(net_bh_worker): Wait for net_bh_raised to become true and reset it
before processing net_bh work.
|
|
Previously any err value set before reaching lose: was overwritten and
thus not properly propagated.
Found using the Clang Static Analyzer.
* libports/create-internal.c (_ports_create_port_internal): Fix error
handling.
|
|
Reported by Justus Winter
* libtrivfs/protid-clean.c (trivfs_clean_protid): New variable `cntl` factorizes
access to `cred->po->cntl`, and fixes use after free of cred->po.
|
|
Found using the Clang Static Analyzer.
* libshouldbeinlibc/maptime.c (maptime_map): Fix error handling.
|
|
* exec/Makefile: Remove commented out lines related to BFD.
* exec/hostarch.c: Remove all BFD related code.
* exec/main.c: Likewise.
|
|
* configure.ac: Properly escape the test for X11/keysymdef.h using
AC_LANG_SOURCE.
|
|
* daemons/rc.sh: Accept fsck returning 5 and 9 too.
|
|
* console/hurd.ti (xenl): Add capability.
|
|
Whether CUD scrolls the screen or not is implementation-dependant.
Applications are not supposed to assume one way or the other, but they
sometimes do, and most implementations do scroll, so let's stick to common
practice.
* console/display.c (handle_esc_bracket): On CUD/VPR, scroll the screen
instead of capping the cursor position.
|
|
* daemons/rc.sh: When fsck returned 2 or 3, reboot the system.
|
|
* pflocal/socket.c (S_socket_recv): Set the memory pointed by out_flags
to 0 instead of the pointer.
|
|
The socket_send and socket_recv routines can be used to transmit port
rights along data. Unfortunately, pflocal retains a copy of these rights
in the socket_recv RPC. These lingering references would in turn lead to
other leaks in servers waiting for a no-sender notification to clean
their resources. Since these copied rights aren't used at all by the
server, it is safe to simply move them to the recipient instead.
* pflocal/socket.c (S_socket_recv): Transmit port rights using
MACH_MSG_TYPE_MOVE_SEND transfer type instead of MACH_MSG_TYPE_COPY_SEND.
|
|
When the file system supports ifsock shortcuts, a socket node can obtain
a right on a socket address. This reference is only lost if the address
is destroyed, through a dead-name notification. On the other hand,
pflocal keeps the address around until all references are dropped. This
leads to a situation where socket nodes, addresses, and their associated
sockets are leaked. To remedy the situation, make addresses get a light
reference on socket nodes, and properly deallocate it when the node is
destroyed, which will in turn make pflocal correctly remove the matching
address and socket.
* libdiskfs/ifsock.c (diskfs_S_ifsock_getsockaddr): Add a light reference
instead of a hard one.
* libdiskfs/node-nput.c (diskfs_nput): Deallocate right to socket address
when cleaning light references.
|
|
Sockets must have a weak reference on the address they're bound to so
that addr_unbind is properly called before addr_clean. For sockets that
are automatically bound, this weak reference is created in ensure_addr.
Do the same in sock_bind.
* pflocal/sock.c (sock_bind): Handle weak reference on addr.
|
|
* term/ptyio.c (pty_io_read): Return EIO if the terminal has been closed.
|
|
* console-client/console.c (main): Replace epilogue with console_exit.
|
|
* console-client/console.c (main): Minor stylistic fix.
|
|
Fix the error handling in console_move_mouse. This also appeases the
compiler.
* console-client/console.c (console_move_mouse): Fix error handing.
|
|
* console-client/input.h (console_exit): Add noreturn attribute.
|
|
Remove the pid file if the console client exits either cleanly using
console_exit or because of an error during daemonization.
* console-client/console.c (console_exit): Remove the pid file.
(daemon_error): Likewise.
|
|
Previously the dynamically allocated field name leaks. Fix this by
properly freeing the objects of type struct translator.
* libfshelp/translator-list.c (translator_ihash_cleanup): Fix memory leak.
|
|
Rename the global variable "path" to "target_path" to make it more
unambiguous.
* trans/mtab.c: Rename global variable "path".
|
|
This reverts commit 7075bc11289355478659cd1610632a9299734afc.
Dropping the unix privileges of the tmpfs translator causes problems
with the passive translator startup. The function fshelp_fetch_root
creates an auth handle containing the processes original UID and
GID. But if the privileges were dropped before, this operation fails
with EPERM.
This commit also broke mkfifo(3), possibly for similar or related
reasons.
* tmpfs/tmpfs.c (main): Do not drop all privileges.
|
|
* exec/hashexec.c (check_hashbang): Unmap command arguments.
|