Re: [PATCH 4/6] t0021/rot13-filter: add packet_initialize()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christian Couder <christian.couder@xxxxxxxxx> writes:

> +sub packet_initialize {
> +	my ($name, $version) = @_;
> +
> +	( packet_txt_read() eq ( 0, $name . "-client" ) )       || die "bad initialize";
> +	( packet_txt_read() eq ( 0, "version=" . $version ) )   || die "bad version";
> +	( packet_bin_read() eq ( 1, "" ) )                      || die "bad version end";

This is not a new issue and it is a bit surprising that nobody
noticed when edcc8581 ("convert: add filter.<driver>.process
option", 2016-10-16) was reviewed, but the above is quite broken.
packet_txt_read() returns a 2-element list, and on the right hand
side of "eq" also has a list with (two, elements), but this takes
the last element of the list on each side, and compares them.  The
elading 0/1 we see above do not matter, which means we do not require
to see a flush at the end of the version---a simple empty string or
an EOF would do, which is definitely not what we want.

	#!/usr/bin/perl
	sub p {
		my ($res, $buf) = @_;
		return ($res, $buf);
	}
	if (p(0, "") eq (-1, 2, 3, "")) { print "ok\n"; }

It is fine to leave the original code broken at this step while we
purely move the lines around, and hopefully this will be corrected
in a later step in the series (I am responding as I read on, so I do
not yet know at which patch that happens in this series).

Thanks.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux