  def self.from(stream)
    header = stream.read 512
    empty = (header == "\0" * 512)

    fields = header.unpack UNPACK_FORMAT

    new :name     => fields.shift,
        :mode     => fields.shift.oct,
        :uid      => fields.shift.oct,
        :gid      => fields.shift.oct,
        :size     => fields.shift.oct,
        :mtime    => fields.shift.oct,
        :checksum => fields.shift.oct,
        :typeflag => fields.shift,
        :linkname => fields.shift,
        :magic    => fields.shift,
        :version  => fields.shift.oct,
        :uname    => fields.shift,
        :gname    => fields.shift,
        :devmajor => fields.shift.oct,
        :devminor => fields.shift.oct,
        :prefix   => fields.shift,

        :empty => empty
  end
The program contains an iteration or loop with an exit condition that cannot be reached, i.e., an infinite loop.