mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
![]() Closes #14621 This one grew to be much more than I expected so here's the story... :-) - when a bad port string (e.g. xxx80) is passed into container.create() via the API it wasn't being checked until we tried to start the container. - While starting the container we trid to parse 'xxx80' in nat.Int() and would panic on the strconv.ParseUint(). We should (almost) never panic. - In trying to remove the panic I decided to make it so that we, instead, checked the string during the NewPort() constructor. This means that I had to change all casts from 'string' to 'Port' to use NewPort() instead. Which is a good thing anyway, people shouldn't assume they know the internal format of types like that, in general. - This meant I had to go and add error checks on all calls to NewPort(). To avoid changing the testcases too much I create newPortNoError() **JUST** for the testcase uses where we know the port string is ok. - After all of that I then went back and added a check during container.create() to check the port string so we'll report the error as soon as we get the data. - If, somehow, the bad string does get into the metadata we will generate an error during container.start() but I can't test for that because the container.create() catches it now. But I did add a testcase for that. Signed-off-by: Doug Davis <dug@us.ibm.com> |
||
---|---|---|
.. | ||
attach.go | ||
build.go | ||
cli.go | ||
client.go | ||
commit.go | ||
cp.go | ||
create.go | ||
diff.go | ||
events.go | ||
exec.go | ||
export.go | ||
help.go | ||
hijack.go | ||
history.go | ||
images.go | ||
import.go | ||
info.go | ||
inspect.go | ||
kill.go | ||
load.go | ||
login.go | ||
logout.go | ||
logs.go | ||
network.go | ||
pause.go | ||
port.go | ||
ps.go | ||
pull.go | ||
push.go | ||
rename.go | ||
restart.go | ||
rm.go | ||
rmi.go | ||
run.go | ||
save.go | ||
search.go | ||
service.go | ||
start.go | ||
stats.go | ||
stats_unit_test.go | ||
stop.go | ||
tag.go | ||
top.go | ||
unpause.go | ||
utils.go | ||
version.go | ||
wait.go |