Hardened Malloc error on login in GrapheneOS leads to incompatibility with ARC (ref#2PN0K0)

Full form submission

What’s happening?

I'm having trouble with Roon ARC

What best describes your issue with ARC

Other

Edge case: GrapheneOS throws a Hardened Malloc error on login.

This is a complete edge case, but something that might be worth looking into since there might be something of value for everyone else.

GrapheneOS's hardened memory allocator (https://github.com/GrapheneOS/hardened_malloc/blob/main/README.md) doesn't seem to like what ARC is doing. My guess given when it happens is that is has to do with how you handle authentication.

I’ve been seeing this, too. However, since disabling “Pause app activity if unused”, which removes permissions and deletes temporary files, I haven’t seen this occur. However, I only made the changes < 24 hours ago, so time will tell.

1 Like

Here’s the log dump on boot (with @Martin_Webster’s suggestion active)

type: crash
osVersion: google/lynx/lynx:14/AP1A.240305.019.A1/2024032100:user/release-keys
uid: 10165 (u:r:untrusted_app_32:s0:c165,c256,c512,c768)
cmdline: com.roon.onthego
processUptime: 19s

abortMessage: hardened_malloc: fatal allocator error: detected write after free

signal: 6 (SIGABRT), code -1 (SI_QUEUE)
threadName: 1.ui

backtrace:
/apex/com.android.runtime/lib64/bionic/libc.so (abort+164, pc 64e84)
/apex/com.android.runtime/lib64/bionic/libc.so (fatal_error+44, pc 4d4c4)
/apex/com.android.runtime/lib64/bionic/libc.so (allocate+1912, pc 4a4e8)
/apex/com.android.runtime/lib64/bionic/libc.so (malloc+36, pc 45db4)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 83fc94)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 789cac)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 793db8)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 79410c)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 7534ac)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 7961ec)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 814038)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 83a004)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 8326f8)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 8e3df0)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 8e33a8)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 17a8dd8)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 835654)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 8354d0)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 833498)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 833050)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 17a9280)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 84ab18)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 17a8dd8)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 835654)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 8354d0)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 833498)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 833050)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 832fbc)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 82488c)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 824774)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 824738)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk (pc 813d2c)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 7776e4)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 8b3438)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 6db178)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 39ef30)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 3a2aa4)
/system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+856, pc f648)
/system/lib64/libandroid.so (ALooper_pollOnce+100, pc 1a2b4)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 3a2bb4)
/data/app/~~vz0yBEYO-ARkQiaayo9M2w==/com.roon.onthego-vak8_X5Gfq8dAF6-hcWZXQ==/split_config.arm64_v8a.apk!libflutter.so (pc 3a0ac8)
/apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+204, pc cf93c)
/apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64, pc 66730)

Hi @Xekomi,

Thank you for taking the time to prepare this report. ARC doesn’t yet officially support GrapheneOS as you suspected, but we don’t want to lose sight of this for ongoing work.

I’m passing this thread to developers for awareness, but until we can chime in officially on the issue, I’m moving this to Tinkering and we’ll keep an eye on it.

1 Like

ARC does seem to work fine if you disable the hardened allocator. Looks like it’s catching a bug somewhere, and by the looks of it one that might’ve been latent for at least a year and a half.

So this conceivably isn’t about GrapheneOS not being a supported platform.

1 Like

Incidentally, I’ve caught a few malloc errors with the Roon app, too. I also notice that some users report the app crashing from time-to-time, so I agree this is simply GrapheneOS (Android 14) capturing something stock Android does not.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.