-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate stack-names for empty values #1088
Validate stack-names for empty values #1088
Conversation
cli/command/stack/swarm/common.go
Outdated
case '"', '\'': | ||
return true | ||
} | ||
return false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: wouldn't this be more readable
return unicode.IsSpace(r) || r == '"' || r == '\''
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(which might optionally then be inlined into validateStackName
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point; I initially had more stuff in the switch, but now it's not really needed anymore. I'll update
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🐯
Add validation for stack names to prevent an empty name resulting in _all_ stacks to be returned after filtering, which can result in removal of services for all stacks if `--prune`, or `docker stack rm` is used. Before this change; docker stack deploy -c docker-compose.yml one docker stack deploy -c docker-compose.yml two docker stack deploy -c docker-compose.yml three docker stack deploy -c docker-compose.yml --prune '' Removing service one_web Removing service two_web Removing service three_web After this change: docker stack deploy -c docker-compose.yml one docker stack deploy -c docker-compose.yml two docker stack deploy -c docker-compose.yml three docker stack deploy -c docker-compose.yml --prune '' invalid stack name: "" Other stack commands were updated as well: Before this change; docker stack deploy -c docker-compose.yml '' Creating network _default failed to create network _default: Error response from daemon: rpc error: code = InvalidArgument desc = name must be valid as a DNS name component docker stack ps '' nothing found in stack: docker stack rm '' Removing service one_web Removing service three_web Removing service two_web After this change: docker stack deploy -c docker-compose.yml '' invalid stack name: "" docker stack ps '' invalid stack name: "" docker stack rm '' invalid stack name: "" Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
f354695
to
d38f397
Compare
Updated 👍
I decided not to inline, as I thought having a |
Fixes moby/moby#36776
Add validation for stack names to prevent an empty name resulting in all
stacks to be returned after filtering, which can result in removal of services
for all stacks if
--prune
, ordocker stack rm
is used.Before this change;
After this change:
Other stack commands were updated as well:
Before this change;
After this change:
Signed-off-by: Sebastiaan van Stijn github@gone.nl
- Description for the changelog