// SPDX-License-Identifier: GPL-2.0-only /* * vdso_restorer.c - tests vDSO-based signal restore * Copyright (c) 2015 Andrew Lutomirski * * This makes sure that sa_restorer == NULL keeps working on 32-bit * configurations. Modern glibc doesn't use it under any circumstances, * so it's easy to overlook breakage. * * 64-bit userspace has never supported sa_restorer == NULL, so this is * 32-bit only.
*/
/* Open-code this -- the headers are too messy to easily use them. */ struct real_sigaction { void *handler; unsignedlong flags; void *restorer; unsignedint mask[2];
};
if (handler_called) {
printf("[OK]\tSA_SIGINFO handler returned successfully\n");
} else {
printf("[FAIL]\tSA_SIGINFO handler was not called\n");
nerrs++;
}
printf("[RUN]\tRaise a signal, !SA_SIGINFO, sa.restorer == NULL\n");
if (handler_called) {
printf("[OK]\t!SA_SIGINFO handler returned successfully\n");
} else {
printf("[FAIL]\t!SA_SIGINFO handler was not called\n");
nerrs++;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.