mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-28 04:13:17 +00:00
The symlink implementation wrongly constructed a 'Sync' object within the context of a monitor call. The 'Sync' constructor indirectly depended on libc I/O for obtaining the current time, ultimately resulting in a nested attempt of a monitor call. This could be reproduced via the base.run script: $ cd /home $ ln -s a b The 'ln' command resulted in the following log message: [init -> /bin/bash -> 7] Error: deadlock ahead, mutex=0x10ff8c70, return ip=0x500583a7 The patch fixes the problem by splitting the single monitor call into two monitor calls and moving the construction of the 'Sync' object in-between both monitor calls, thereby executing the constructor at the libc application level. Fixes #4219