The European Schuko socket bothers me
blog.jgc.org6 ポイント投稿者 pbrowne0110 コメント
if (c >= 93 || c>=0xc6-0x81 && d>0x52)
to if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52)
Link to relevant source code: https://git.musl-libc.org/cgit/musl/tree/src/locale/iconv.c (bug fix is line 505). EPERM The specified process cannot be traced. This could be because the tracer has insufficient privileges
(the required capability is CAP_SYS_PTRACE); unprivileged processes cannot trace processes that they
cannot send signals to or those running set-user-ID/set-group-ID programs, for obvious reasons. Alter‐
natively, the process may already be being traced, or (on kernels before 2.6.26) be init(1) (PID 1).
However, this is not the best solution, as if your system has a security policy already in place for ptrace() detection, your process might get detected and killed. Other methods from the calling process might involve timing mechanisms, breakpoint detection, or checking other factors in the process' environment. One problem with the workaround suggested in this post (running a process from qemu-user) is that if it is truly security hardened, it might rely on timing differences smaller than the speed of VM instruction execution.
"Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.
Rule 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest."