blob: 2a8549184333b0da7dc4679f4d35f80785424b55 [file] [log] [blame]
// Copyright Microsoft and CHERIoT Contributors.
// SPDX-License-Identifier: MIT
#include "hello.h"
#include <fail-simulator-on-error.h>
/// Thread entry point.
void __cheri_compartment("hello") entry()
{
// Try writing a string with a missing null terminator
char maliciousString[] = {'h', 'e', 'l', 'l', 'o'};
write(maliciousString);
// Now try one that doesn't have read permission:
CHERI::Capability storeOnlyString{maliciousString};
storeOnlyString.permissions() &= CHERI::Permission::Store;
write(storeOnlyString);
// Now one that should work
write("Non-malicious string");
}