code: func untar() {
  	runtime.LockOSThread()
  	flag.Parse()
  
  	var options *archive.TarOptions
  
  	//read the options from the pipe "ExtraFiles"
  	if err := json.NewDecoder(os.NewFile(3, "options")).Decode(&options); err != nil {
  		fatal(err)
  	}
  
  	if err := chroot(flag.Arg(0)); err != nil {
  		fatal(err)
  	}
  
  	if err := archive.Unpack(os.Stdin, "/", options); err != nil {
  		fatal(err)
  	}
  	// fully consume stdin in case it is zero padded
  	if _, err := flush(os.Stdin); err != nil {
  		fatal(err)
  	}
  
  	os.Exit(0)
  }
docs: // untar is the entry-point for docker-untar on re-exec. This is not used on
  // Windows as it does not support chroot, hence no point sandboxing through
  // chroot and rexec.