ish icon indicating copy to clipboard operation
ish copied to clipboard

fix ish-app/ish#2349 stop EACCES truncate with open

Open kuflierl opened this issue 1 year ago • 7 comments

Relocate the permission check for the generic_openat function to before opening the back-end. This mitigates the case where open is called on the file back-end even if the user is not allowed to. Opening the back-end prematurely can cause truncation of the file in question by the error handler.

This seemed like an easy issue to fix so i tried fixing it. This is my first PR in this Repository, If i made any mistakes let me know!

kuflierl avatar Feb 24 '24 23:02 kuflierl

Looks like this makes tests fail

tbodt avatar Mar 07 '24 01:03 tbodt

That's indeed worrying, I will look into it when I have time

kuflierl avatar Mar 07 '24 08:03 kuflierl

Looks like this makes tests fail

This time it should work @tbodt I ran the tests.

I had to engage the inode lock before the stat

Sorry for the delay tho

kuflierl avatar Mar 22 '24 15:03 kuflierl

We may need to increase the timeout delay to reduce false positives

kuflierl avatar Apr 08 '24 09:04 kuflierl

Actually there might be a better way that doesn't cripple the speed. but it might include a slight rework of the fd closing function. @tbodt Would you prefer that?

kuflierl avatar Apr 16 '24 22:04 kuflierl

What happened with the speed?

If more things need to be refactored, more things need to be refactored :D This isn't a bad thing in itself.

tbodt avatar Apr 17 '24 05:04 tbodt

What happened with the speed?

If more things need to be refactored, more things need to be refactored :D This isn't a bad thing in itself.

It seems fstat is that much faster than stat. I expected a bit of performance loss due to extra path finding overhead but not this much. Instead of checking before opening the file it might be a better idea to just write a better error handling function to compensate.

kuflierl avatar Apr 17 '24 16:04 kuflierl