Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  signals.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (C) 2019 ARM Limited */

#include <asm/unistd.h>

.section        .rodata, "a"
call_fmt:
 .asciz "Calling sigreturn with fake sigframe sized:%zd at SP @%08lX\n"

.text

.globl fake_sigreturn

/* fake_sigreturn x0:&sigframe,  x1:sigframe_size,  x2:misalign_bytes */
fake_sigreturn:
 stp x29, x30, [sp, #-16]!
 mov x29, sp

 mov x20, x0
 mov x21, x1
 mov x22, x2

 /* create space on the stack for fake sigframe 16 bytes-aligned */
 add x0, x21, x22
 add x0, x0, #15
 bic x0, x0, #15 /* round_up(sigframe_size + misalign_bytes, 16) */
 sub sp, sp, x0
 add x23, sp, x22 /* new sigframe base with misaligment if any */

 ldr x0, =call_fmt
 mov x1, x21
 mov x2, x23
 bl printf

 /* memcpy the provided content, while still keeping SP aligned */
 mov x0, x23
 mov x1, x20
 mov x2, x21
 bl memcpy

 /*
 * Here saving a last minute SP to current->token acts as a marker:
 * if we got here, we are successfully faking a sigreturn; in other
 * words we are sure no bad fatal signal has been raised till now
 * for unrelated reasons, so we should consider the possibly observed
 * fatal signal like SEGV coming from Kernel restore_sigframe() and
 * triggered as expected from our test-case.
 * For simplicity this assumes that current field 'token' is laid out
 * as first in struct tdescr
 */

 ldr x0, current
 str x23, [x0]
 /* finally move SP to misaligned address...if any requested */
 mov sp, x23

 mov x8, #__NR_rt_sigreturn
 svc #0

 /*
 * Above sigreturn should not return...looping here leads to a timeout
 * and ensure proper and clean test failure, instead of jumping around
 * on a potentially corrupted stack.
 */

 b .

Messung V0.5
C=98 H=87 G=92

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge