1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/api
Doug Davis 12b6083c8f Remove panic in nat package on invalid hostport
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>
2015-07-17 13:02:54 -07:00
..
client Remove panic in nat package on invalid hostport 2015-07-17 13:02:54 -07:00
server Merge pull request #14388 from runcom/14316-fix-events-filters 2015-07-07 18:08:56 -07:00
types Merge pull request #14047 from Microsoft/10662-versionadd 2015-06-23 09:57:31 -07:00
api_unit_test.go fix tests 2014-03-31 18:11:53 +00:00
common.go Error out if client API version is too old 2015-06-18 11:03:07 +02:00
README.md Update README.md 2014-07-04 18:21:13 +09:00

This directory contains code pertaining to the Docker API:

  • Used by the docker client when communicating with the docker daemon

  • Used by third party tools wishing to interface with the docker daemon