* [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning
@ 2014-11-13 12:17 arei.gonglei
2014-11-13 12:17 ` [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak arei.gonglei
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: arei.gonglei @ 2014-11-13 12:17 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, Gonglei, aneesh.kumar, peter.huangpeng
From: Gonglei <arei.gonglei@huawei.com>
Gonglei (2):
virtfs-proxy-helper: Fix possible socket leak.
virtfs-proxy-helper: Fix handle leak to make Coverity happy
fsdev/virtfs-proxy-helper.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
--
1.7.12.4
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak.
2014-11-13 12:17 [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning arei.gonglei
@ 2014-11-13 12:17 ` arei.gonglei
2014-11-27 12:49 ` Markus Armbruster
2014-11-13 12:17 ` [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy arei.gonglei
2014-11-27 10:29 ` [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning Gonglei
2 siblings, 1 reply; 13+ messages in thread
From: arei.gonglei @ 2014-11-13 12:17 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, Gonglei, aneesh.kumar, peter.huangpeng
From: Gonglei <arei.gonglei@huawei.com>
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
---
fsdev/virtfs-proxy-helper.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
index cd291d3..c1da2d7 100644
--- a/fsdev/virtfs-proxy-helper.c
+++ b/fsdev/virtfs-proxy-helper.c
@@ -749,24 +749,29 @@ static int proxy_socket(const char *path, uid_t uid, gid_t gid)
if (bind(sock, (struct sockaddr *)&proxy,
sizeof(struct sockaddr_un)) < 0) {
do_perror("bind");
- return -1;
+ goto error;
}
if (chown(proxy.sun_path, uid, gid) < 0) {
do_perror("chown");
- return -1;
+ goto error;
}
if (listen(sock, 1) < 0) {
do_perror("listen");
- return -1;
+ goto error;
}
size = sizeof(qemu);
client = accept(sock, (struct sockaddr *)&qemu, &size);
if (client < 0) {
do_perror("accept");
- return -1;
+ goto error;
}
+ close(sock);
return client;
+
+error:
+ close(sock);
+ return -1;
}
static void usage(char *prog)
--
1.7.12.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy
2014-11-13 12:17 [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning arei.gonglei
2014-11-13 12:17 ` [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak arei.gonglei
@ 2014-11-13 12:17 ` arei.gonglei
2014-11-27 12:47 ` Markus Armbruster
2014-11-27 10:29 ` [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning Gonglei
2 siblings, 1 reply; 13+ messages in thread
From: arei.gonglei @ 2014-11-13 12:17 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial, Gonglei, aneesh.kumar, peter.huangpeng
From: Gonglei <arei.gonglei@huawei.com>
Coverity report:
(94) Event open_fn: Returning handle opened by function "proxy_socket(char const *, uid_t, gid_t)". [details]
(95) Event var_assign: Assigning: "sock" = handle returned from "proxy_socket(sock_name, own_u, own_g)".
(103) Event leaked_handle: Handle variable "sock" going out of scope leaks the handle.
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
---
fsdev/virtfs-proxy-helper.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
index c1da2d7..2d72def 100644
--- a/fsdev/virtfs-proxy-helper.c
+++ b/fsdev/virtfs-proxy-helper.c
@@ -1150,6 +1150,9 @@ int main(int argc, char **argv)
process_requests(sock);
error:
+ if (sock_name && sock >= 0) {
+ close(sock);
+ }
do_log(LOG_INFO, "Done\n");
closelog();
return 0;
--
1.7.12.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning
2014-11-13 12:17 [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning arei.gonglei
2014-11-13 12:17 ` [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak arei.gonglei
2014-11-13 12:17 ` [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy arei.gonglei
@ 2014-11-27 10:29 ` Gonglei
2014-11-28 8:31 ` Paolo Bonzini
2 siblings, 1 reply; 13+ messages in thread
From: Gonglei @ 2014-11-27 10:29 UTC (permalink / raw)
To: Gonglei (Arei)
Cc: qemu-trivial@nongnu.org, Huangpeng (Peter), qemu-devel@nongnu.org,
aneesh.kumar@linux.vnet.ibm.com
On 2014/11/13 20:17, Gonglei (Arei) wrote:
> From: Gonglei <arei.gonglei@huawei.com>
>
> Gonglei (2):
> virtfs-proxy-helper: Fix possible socket leak.
> virtfs-proxy-helper: Fix handle leak to make Coverity happy
>
> fsdev/virtfs-proxy-helper.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
>
Ping...
Thanks,
-Gonglei
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy
2014-11-13 12:17 ` [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy arei.gonglei
@ 2014-11-27 12:47 ` Markus Armbruster
2014-11-28 1:51 ` Gonglei
0 siblings, 1 reply; 13+ messages in thread
From: Markus Armbruster @ 2014-11-27 12:47 UTC (permalink / raw)
To: arei.gonglei; +Cc: qemu-trivial, peter.huangpeng, qemu-devel, aneesh.kumar
<arei.gonglei@huawei.com> writes:
> From: Gonglei <arei.gonglei@huawei.com>
>
> Coverity report:
> (94) Event open_fn: Returning handle opened by function "proxy_socket(char const *, uid_t, gid_t)". [details]
> (95) Event var_assign: Assigning: "sock" = handle returned from "proxy_socket(sock_name, own_u, own_g)".
> (103) Event leaked_handle: Handle variable "sock" going out of scope leaks the handle.
>
> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
> ---
> fsdev/virtfs-proxy-helper.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
> index c1da2d7..2d72def 100644
> --- a/fsdev/virtfs-proxy-helper.c
> +++ b/fsdev/virtfs-proxy-helper.c
> @@ -1150,6 +1150,9 @@ int main(int argc, char **argv)
>
> process_requests(sock);
> error:
> + if (sock_name && sock >= 0) {
> + close(sock);
> + }
> do_log(LOG_INFO, "Done\n");
> closelog();
> return 0;
Why if sock_name? What about sock gotten from -f?
If sock >= 0 is pointless, too, but needed to hush up Coverity.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak.
2014-11-13 12:17 ` [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak arei.gonglei
@ 2014-11-27 12:49 ` Markus Armbruster
2015-01-21 8:00 ` Gonglei
0 siblings, 1 reply; 13+ messages in thread
From: Markus Armbruster @ 2014-11-27 12:49 UTC (permalink / raw)
To: arei.gonglei; +Cc: qemu-trivial, peter.huangpeng, qemu-devel, aneesh.kumar
<arei.gonglei@huawei.com> writes:
> From: Gonglei <arei.gonglei@huawei.com>
>
> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy
2014-11-27 12:47 ` Markus Armbruster
@ 2014-11-28 1:51 ` Gonglei
2014-11-28 7:29 ` Markus Armbruster
0 siblings, 1 reply; 13+ messages in thread
From: Gonglei @ 2014-11-28 1:51 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-trivial@nongnu.org, Huangpeng (Peter), qemu-devel@nongnu.org,
aneesh.kumar@linux.vnet.ibm.com
On 2014/11/27 20:47, Markus Armbruster wrote:
> <arei.gonglei@huawei.com> writes:
>
>> From: Gonglei <arei.gonglei@huawei.com>
>>
>> Coverity report:
>> (94) Event open_fn: Returning handle opened by function "proxy_socket(char const *, uid_t, gid_t)". [details]
>> (95) Event var_assign: Assigning: "sock" = handle returned from "proxy_socket(sock_name, own_u, own_g)".
>> (103) Event leaked_handle: Handle variable "sock" going out of scope leaks the handle.
>>
>> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
>> ---
>> fsdev/virtfs-proxy-helper.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
>> index c1da2d7..2d72def 100644
>> --- a/fsdev/virtfs-proxy-helper.c
>> +++ b/fsdev/virtfs-proxy-helper.c
>> @@ -1150,6 +1150,9 @@ int main(int argc, char **argv)
>>
>> process_requests(sock);
>> error:
>> + if (sock_name && sock >= 0) {
>> + close(sock);
>> + }
>> do_log(LOG_INFO, "Done\n");
>> closelog();
>> return 0;
>
> Why if sock_name? What about sock gotten from -f?
>
Thanks for your review, Makus :)
Because only sock_name is non-NULL, the sock returned from
"proxy_socket(sock_name, own_u, own_g)", then will leak fd.
If sock gotten from -f, maybe the caller will free it IMO.
> If sock >= 0 is pointless, too, but needed to hush up Coverity.
You mean do not check sock_name is NULL or not?
Regards,
-Gonglei
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy
2014-11-28 1:51 ` Gonglei
@ 2014-11-28 7:29 ` Markus Armbruster
2014-11-28 7:41 ` Gonglei
0 siblings, 1 reply; 13+ messages in thread
From: Markus Armbruster @ 2014-11-28 7:29 UTC (permalink / raw)
To: Gonglei
Cc: qemu-trivial@nongnu.org, aneesh.kumar@linux.vnet.ibm.com,
Huangpeng (Peter), qemu-devel@nongnu.org
Gonglei <arei.gonglei@huawei.com> writes:
> On 2014/11/27 20:47, Markus Armbruster wrote:
>
>> <arei.gonglei@huawei.com> writes:
>>
>>> From: Gonglei <arei.gonglei@huawei.com>
>>>
>>> Coverity report:
>>> (94) Event open_fn: Returning handle opened by function "proxy_socket(char const *, uid_t, gid_t)". [details]
>>> (95) Event var_assign: Assigning: "sock" = handle returned from "proxy_socket(sock_name, own_u, own_g)".
>>> (103) Event leaked_handle: Handle variable "sock" going out of scope leaks the handle.
>>>
>>> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
>>> ---
>>> fsdev/virtfs-proxy-helper.c | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
>>> index c1da2d7..2d72def 100644
>>> --- a/fsdev/virtfs-proxy-helper.c
>>> +++ b/fsdev/virtfs-proxy-helper.c
>>> @@ -1150,6 +1150,9 @@ int main(int argc, char **argv)
>>>
>>> process_requests(sock);
>>> error:
>>> + if (sock_name && sock >= 0) {
>>> + close(sock);
>>> + }
>>> do_log(LOG_INFO, "Done\n");
>>> closelog();
>>> return 0;
>>
>> Why if sock_name? What about sock gotten from -f?
>>
>
> Thanks for your review, Makus :)
>
>
>
> Because only sock_name is non-NULL, the sock returned from
> "proxy_socket(sock_name, own_u, own_g)", then will leak fd.
> If sock gotten from -f, maybe the caller will free it IMO.
Since this is main(), the "caller" is the OS. And yes, the OS closes
the -f file descriptor when main() returns, because it closes *all* file
descriptors. Calling close() before return from main() is pointless,
unless you check for errors.
Unfortunately, Coverity doesn't understand this. Calling close() in
main() suppresses its bogus defect report.
>> If sock >= 0 is pointless, too, but needed to hush up Coverity.
>
> You mean do not check sock_name is NULL or not?
Yes, unless it causes another bogus Coverity defect.
Or simply mark the defect as invalid and move on without patching the
code.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy
2014-11-28 7:29 ` Markus Armbruster
@ 2014-11-28 7:41 ` Gonglei
0 siblings, 0 replies; 13+ messages in thread
From: Gonglei @ 2014-11-28 7:41 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-trivial@nongnu.org, aneesh.kumar@linux.vnet.ibm.com,
Huangpeng (Peter), qemu-devel@nongnu.org
On 2014/11/28 15:29, Markus Armbruster wrote:
> Since this is main(), the "caller" is the OS. And yes, the OS closes
> the -f file descriptor when main() returns, because it closes *all* file
> descriptors. Calling close() before return from main() is pointless,
> unless you check for errors.
>
> Unfortunately, Coverity doesn't understand this. Calling close() in
> main() suppresses its bogus defect report.
>
Yes.
>>> >> If sock >= 0 is pointless, too, but needed to hush up Coverity.
>> >
>> > You mean do not check sock_name is NULL or not?
> Yes, unless it causes another bogus Coverity defect.
>
> Or simply mark the defect as invalid and move on without patching the
> code.
Let's drop this patch, thanks.
Regards,
-Gonglei
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning
2014-11-27 10:29 ` [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning Gonglei
@ 2014-11-28 8:31 ` Paolo Bonzini
2014-11-28 8:34 ` Gonglei
0 siblings, 1 reply; 13+ messages in thread
From: Paolo Bonzini @ 2014-11-28 8:31 UTC (permalink / raw)
To: Gonglei
Cc: qemu-trivial@nongnu.org, aneesh.kumar@linux.vnet.ibm.com,
Huangpeng (Peter), qemu-devel@nongnu.org
On 27/11/2014 11:29, Gonglei wrote:
> On 2014/11/13 20:17, Gonglei (Arei) wrote:
>
>> From: Gonglei <arei.gonglei@huawei.com>
>>
>> Gonglei (2):
>> virtfs-proxy-helper: Fix possible socket leak.
>> virtfs-proxy-helper: Fix handle leak to make Coverity happy
>>
>> fsdev/virtfs-proxy-helper.c | 16 ++++++++++++----
>> 1 file changed, 12 insertions(+), 4 deletions(-)
>>
>
> Ping...
Hi Gonglei---thanks, I had missed this and Michael is probably not
sending qemu-trivial patches because we're so close to the release.
I'll pick up patch 1.
Paolo
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning
2014-11-28 8:31 ` Paolo Bonzini
@ 2014-11-28 8:34 ` Gonglei
0 siblings, 0 replies; 13+ messages in thread
From: Gonglei @ 2014-11-28 8:34 UTC (permalink / raw)
To: Paolo Bonzini
Cc: qemu-trivial@nongnu.org, aneesh.kumar@linux.vnet.ibm.com,
Huangpeng (Peter), qemu-devel@nongnu.org
On 2014/11/28 16:31, Paolo Bonzini wrote:
>
>
> On 27/11/2014 11:29, Gonglei wrote:
>> On 2014/11/13 20:17, Gonglei (Arei) wrote:
>>
>>> From: Gonglei <arei.gonglei@huawei.com>
>>>
>>> Gonglei (2):
>>> virtfs-proxy-helper: Fix possible socket leak.
>>> virtfs-proxy-helper: Fix handle leak to make Coverity happy
>>>
>>> fsdev/virtfs-proxy-helper.c | 16 ++++++++++++----
>>> 1 file changed, 12 insertions(+), 4 deletions(-)
>>>
>>
>> Ping...
>
> Hi Gonglei---thanks, I had missed this and Michael is probably not
> sending qemu-trivial patches because we're so close to the release.
> I'll pick up patch 1.
>
> Paolo
Thanks.
As Markus's suggestion, we drop patch 2. :)
Regards,
-Gonglei
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak.
2014-11-27 12:49 ` Markus Armbruster
@ 2015-01-21 8:00 ` Gonglei
2015-01-21 8:06 ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
0 siblings, 1 reply; 13+ messages in thread
From: Gonglei @ 2015-01-21 8:00 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-trivial@nongnu.org, Huangpeng (Peter), Michael Tokarev,
qemu-devel@nongnu.org, aneesh.kumar@linux.vnet.ibm.com
On 2014/11/27 20:49, Markus Armbruster wrote:
> <arei.gonglei@huawei.com> writes:
>
>> From: Gonglei <arei.gonglei@huawei.com>
>>
>> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
Hi, Michael
I guess Paolo forgot this patch :(
Maybe this one can be picked up by qemu-trivial. Thanks.
Regards,
-Gonglei
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak.
2015-01-21 8:00 ` Gonglei
@ 2015-01-21 8:06 ` Michael Tokarev
0 siblings, 0 replies; 13+ messages in thread
From: Michael Tokarev @ 2015-01-21 8:06 UTC (permalink / raw)
To: Gonglei, Markus Armbruster
Cc: qemu-trivial@nongnu.org, aneesh.kumar@linux.vnet.ibm.com,
Huangpeng (Peter), qemu-devel@nongnu.org
21.01.2015 11:00, Gonglei wrote:
[]
> Hi, Michael
>
> I guess Paolo forgot this patch :(
> Maybe this one can be picked up by qemu-trivial. Thanks.
I picked it up and applied to -trivial.
It is not a problem if the same patch will be applied to
several trees at once, so if Paolo will send a pull request
for it together with me it all will work ok.
Thanks,
/mjt
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2015-01-21 8:06 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-13 12:17 [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning arei.gonglei
2014-11-13 12:17 ` [Qemu-devel] [PATCH 1/2] virtfs-proxy-helper: Fix possible socket leak arei.gonglei
2014-11-27 12:49 ` Markus Armbruster
2015-01-21 8:00 ` Gonglei
2015-01-21 8:06 ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
2014-11-13 12:17 ` [Qemu-devel] [PATCH 2/2] virtfs-proxy-helper: Fix handle leak to make Coverity happy arei.gonglei
2014-11-27 12:47 ` Markus Armbruster
2014-11-28 1:51 ` Gonglei
2014-11-28 7:29 ` Markus Armbruster
2014-11-28 7:41 ` Gonglei
2014-11-27 10:29 ` [Qemu-devel] [PATCH 0/2] virtfs-proxy-helper: Fix Coverity warning Gonglei
2014-11-28 8:31 ` Paolo Bonzini
2014-11-28 8:34 ` Gonglei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).