MrBrax / LiveStreamDVR

An automatic livestream recorder
MIT License
309 stars 24 forks source link

"File chmod" is not working correctly. #507

Closed wiinxt closed 3 weeks ago

wiinxt commented 2 months ago

Describe the bug The "File chmod" option is not working because fs.chmodSync mode parameter needs an octal and not a decimal. The default value 775 in decimal gives 1407 in octal, so chmod sets -r-----rwt instead of -rwxrwxr-x.

The error is here: https://github.com/MrBrax/LiveStreamDVR/blob/bcde36baa432f9c22321f8d9b60fe8ae33e3e8ed/server/src/Core/Providers/Base/BaseVOD.ts#L2577

Node.js doc of fs.chmod: https://nodejs.org/api/fs.html#fschmodpath-mode-callback

I suggest this change to fix the error (convert the number to a string, then parse it as octal) :

fs.chmodSync(fullpath, parseInt(Config.getInstance().cfg("file_chmod").toString(), 8)); 

To Reproduce

  1. Go to Advanced options
  2. Click on Set file permissions
  3. The permissions on files are not 775 (-r-----rwt instead of -rwxrwxr-x)

Expected behavior The permission must be 775 (-rwxrwxr-x)

Server:

Workaround I set 509 (which is 775 in octal) for now, it works well.

MrBrax commented 2 months ago

good catch, probably an oversight that carried over from the php version