An Extended Low Fat Allocator API and Applications

04/13/2018
by   Gregory J. Duck, et al.
0

The primary function of memory allocators is to allocate and deallocate chunks of memory primarily through the malloc API. Many memory allocators also implement other API extensions, such as deriving the size of an allocated object from the object's pointer, or calculating the base address of an allocation from an interior pointer. In this paper, we propose a general purpose extended allocator API built around these common extensions. We argue that such extended APIs have many applications and demonstrate several use cases, such as (manual) memory error detection, meta data storage, typed pointers and compact data-structures. Because most existing allocators were not designed for the extended API, traditional implementations are expensive or not possible. Recently, the LowFat allocator for heap and stack objects has been developed. The LowFat allocator is an implementation of the idea of low-fat pointers, where object bounds information (size and base) are encoded into the native machine pointer representation itself. The "killer app" for low-fat pointers is automated bounds check instrumentation for program hardening and bug detection. However, the LowFat allocator can also be used to implement highly optimized version of the extended allocator API, which makes the new applications (listed above) possible. In this paper, we implement and evaluate several applications based efficient memory allocator API extensions using low-fat pointers. We also extend the LowFat allocator to cover global objects for the first time.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/02/2017

TCPSnitch: Dissecting the Usage of the Socket API

Networked applications interact with the TCP/IP stack through the socket...
research
12/31/2021

OWLOOP: A Modular API to Describe OWL Axioms in OOP Objects Hierarchies

OWLOOP is an Application Programming Interface (API) for using the Ontol...
research
08/16/2021

Writing R Extensions in Rust

This paper complements "Writing R Extensions," the official guide for wr...
research
12/13/2022

OpenAPI Specification Extended Security Scheme: A method to reduce the prevalence of Broken Object Level Authorization

APIs have become the prominent technology of choice for achieving inter-...
research
11/02/2022

Fluent APIs in Functional Languages (full version)

Fluent API is an object-oriented pattern for elegant APIs and embedded D...
research
12/23/2020

Library of efficient algorithms for phylogenetic analysis

Evolutionary relationships between species are usually inferred through ...
research
06/24/2021

Userfault Objects: Transparent Programmable Memory

The Userfault Object (UFO) framework explores avenues of cooperating wit...

Please sign up or login with your details

Forgot password? Click here to reset