mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-20 06:35:31 +00:00
e3e132967c
The ^ noderange operator reads node names from a file. NodeRange opened that file with a two-argument open. A two-argument open reads shell metacharacters in the path, so a noderange such as ^"id|" ran a command. xcatd expands a noderange while it processes a request, so the command ran on the management node. Use a three-argument open with an explicit read mode. The value is then only ever a file name. The ^ operator keeps working: ^/tmp/nodes still reads the file. This fix was recovered from the lenovobuild branch. The original there (commit for "Remove load from file in noderange support") removed the ^ operator. This keeps the documented operator and closes the command path instead.