lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 26 Aug 2013 10:48:15 +0900
From:	Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@...achi.com>
To:	Steven Rostedt <rostedt@...dmis.org>
Cc:	Hidehiro Kawai <hidehiro.kawai.ez@...achi.com>,
	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
	linux-kernel@...r.kernel.org, yrl.pp-manager.tt@...achi.com
Subject: Re: Re: [RFC PATCH 07/11] [CLEANUP] trace-cmd: Split out binding
 a port and fork reader from open_udp()

(2013/08/21 2:49), Steven Rostedt wrote:
> On Mon, 19 Aug 2013 18:46:37 +0900
> Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@...achi.com> wrote:
>
>> Split out binding a port and fork reader from open_udp() for avoiding duplicate
>> codes between listen mode and virt-server mode.
>>
>> Signed-off-by: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@...achi.com>
>> ---
>>   trace-listen.c |   34 ++++++++++++++++++++++++++--------
>>   1 file changed, 26 insertions(+), 8 deletions(-)
>>
>> diff --git a/trace-listen.c b/trace-listen.c
>> index f29dd35..bf9ef9d 100644
>> --- a/trace-listen.c
>> +++ b/trace-listen.c
>> @@ -228,13 +228,12 @@ static void process_udp_child(int sfd, const char *host, const char *port,
>>   #define START_PORT_SEARCH 1500
>>   #define MAX_PORT_SEARCH 6000
>>
>> -static int open_udp(const char *node, const char *port, int *pid,
>> -		    int cpu, int pagesize, int start_port)
>> +static int udp_bind_a_port(int start_port, int *sfd)
>>   {
>>   	struct addrinfo hints;
>>   	struct addrinfo *result, *rp;
>> -	int sfd, s;
>>   	char buf[BUFSIZ];
>> +	int s;
>>   	int num_port = start_port;
>>
>>    again:
>> @@ -250,15 +249,15 @@ static int open_udp(const char *node, const char *port, int *pid,
>>   		pdie("getaddrinfo: error opening udp socket");
>>
>>   	for (rp = result; rp != NULL; rp = rp->ai_next) {
>> -		sfd = socket(rp->ai_family, rp->ai_socktype,
>> -			     rp->ai_protocol);
>> -		if (sfd < 0)
>> +		*sfd = socket(rp->ai_family, rp->ai_socktype,
>> +			      rp->ai_protocol);
>> +		if (*sfd < 0)
>>   			continue;
>>
>> -		if (bind(sfd, rp->ai_addr, rp->ai_addrlen) == 0)
>> +		if (bind(*sfd, rp->ai_addr, rp->ai_addrlen) == 0)
>>   			break;
>>
>> -		close(sfd);
>> +		close(*sfd);
>>   	}
>>
>>   	if (rp == NULL) {
>> @@ -270,6 +269,12 @@ static int open_udp(const char *node, const char *port, int *pid,
>>
>>   	freeaddrinfo(result);
>>
>> +	return num_port;
>> +}
>> +
>> +static void fork_udp_reader(int sfd, const char *node, const char *port,
>> +			    int *pid, int cpu, int pagesize)
>> +{
>>   	*pid = fork();
>>
>>   	if (*pid < 0)
>> @@ -279,6 +284,19 @@ static int open_udp(const char *node, const char *port, int *pid,
>>   		process_udp_child(sfd, node, port, cpu, pagesize);
>>
>>   	close(sfd);
>> +}
>> +
>> +static int open_udp(const char *node, const char *port, int *pid,
>> +		    int cpu, int pagesize, int start_port)
>> +{
>> +	int sfd;
>> +	int num_port;
>> +
>> +	num_port = udp_bind_a_port(start_port, &sfd);
>> +	if (num_port < 0)
>> +		return num_port;
>
> I don't see how num_port could be less than zero.

I think so, but trace-cmd checks whether udp_port is less than zero or
not in create_all_readers().

May I submit the removal patch?

Thanks,
Yoshihiro YUNOMAE

-- 
Yoshihiro YUNOMAE
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: yoshihiro.yunomae.ez@...achi.com


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ