diff options
author | bptato <nincsnevem662@gmail.com> | 2025-01-31 23:39:46 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-01-31 23:43:16 +0100 |
commit | 597d63922c5614da4f07bbddd4a5866c48cad555 (patch) | |
tree | 43ce7175c324edde930e5a1bb5f809df6589a2b4 /src | |
parent | ca9e427bce33ebdc006787d4e92333b269b92753 (diff) | |
download | chawan-597d63922c5614da4f07bbddd4a5866c48cad555.tar.gz |
loader: do not crash on invalid shareCachedItem
It could be legitimate. (Although I found it in a case where it likely isn't legitimate. But that's another question...)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/loader.nim | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/loader.nim b/src/server/loader.nim index e20020e8..31bd2d50 100644 --- a/src/server/loader.nim +++ b/src/server/loader.nim @@ -1455,9 +1455,10 @@ proc shareCachedItem(ctx: LoaderContext; stream: SocketStream; let sourceClient = ctx.clientMap[sourcePid] let targetClient = ctx.clientMap[targetPid] let n = sourceClient.cacheMap.find(id) - let item = sourceClient.cacheMap[n] - inc item.refc - targetClient.cacheMap.add(item) + if n != -1: + let item = sourceClient.cacheMap[n] + inc item.refc + targetClient.cacheMap.add(item) proc openCachedItem(ctx: LoaderContext; stream: SocketStream; client: ClientHandle; r: var BufferedReader) = |