Jan Schaumann on Nostr: #php2shell is based on PHP using longjmp(3) to bail out of OOM conditions. They fixed ...
#php2shell is based on PHP using longjmp(3) to bail out of OOM conditions. They fixed that by actually properly unwinding the call stack under those conditions -- that's the "replace bailout with UnwindExit" part in the massive diff that touches 389 files here:
There are still dozens of other places where PHP longjmp(3)'s, and frankly, I don't think that can possibly be a safe error handling approach in a long-lived, server-side process.
{
"id":"94559218176faf730d12758c45adf4daccc756350095835cb412182c6a095173",
"pubkey":"b3087ccfbff4c2e2e16a3af148b6a3a27fe07bb1e7628b714a11e5f26711f263",
"created_at":1792876748,
"kind":1,
"tags": [
[
"t",
"php2shell"
],
[
"imeta",
"url https://media.mstdn.social/media_attachments/files/117/497/968/508/529/720/original/03bc4d6cee23d019.mp4",
"m video/mp4",
"dim 220x180",
"blurhash UDAv:rRPDmRo02%2oIRk~BaKW;R+I:W=M|t6"
],
[
"proxy",
"https://mstdn.social/users/jschauma/statuses/117497970566538071",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content":"#php2shell is based on PHP using longjmp(3) to bail out of OOM conditions. They fixed that by actually properly unwinding the call stack under those conditions -- that's the \"replace bailout with UnwindExit\" part in the massive diff that touches 389 files here:\n\nhttps://github.com/php/php-src/commit/01a40e89fb\n\nCool. But.\n\nThere are still dozens of other places where PHP longjmp(3)'s, and frankly, I don't think that can possibly be a safe error handling approach in a long-lived, server-side process.\n\nhttps://media.mstdn.social/media_attachments/files/117/497/968/508/529/720/original/03bc4d6cee23d019.mp4",
"sig":"1059f1c327a2c6aa5c541d5ceeb347c9eb4f9f77e90aae55522c6466fa1f4847e3c3e2e9e8d5cf71c5bdf76d9062adf2056ee6ef81bf74698cf44ede6dd08ea6"
}