From: Markus Elfring elfring@users.sourceforge.net Date: Mon, 20 Nov 2017 22:20:37 +0100
Add a jump target so that a bit of exception handling can be better reused at the end of this function.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring elfring@users.sourceforge.net --- tools/testing/selftests/sync/sync.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/tools/testing/selftests/sync/sync.c b/tools/testing/selftests/sync/sync.c index f3d599f249b9..d0d55377f6f8 100644 --- a/tools/testing/selftests/sync/sync.c +++ b/tools/testing/selftests/sync/sync.c @@ -92,10 +92,8 @@ static struct sync_file_info *sync_file_info(int fd) return NULL;
err = ioctl(fd, SYNC_IOC_FILE_INFO, info); - if (err < 0) { - free(info); - return NULL; - } + if (err < 0) + goto free_info;
num_fences = info->num_fences;
@@ -104,22 +102,23 @@ static struct sync_file_info *sync_file_info(int fd) info->num_fences = num_fences;
fence_info = calloc(num_fences, sizeof(*fence_info)); - if (!fence_info) { - free(info); - return NULL; - } + if (!fence_info) + goto free_info;
info->sync_fence_info = (uint64_t)fence_info;
err = ioctl(fd, SYNC_IOC_FILE_INFO, info); if (err < 0) { free(fence_info); - free(info); - return NULL; + goto free_info; } }
return info; + +free_info: + free(info); + return NULL; }
static void sync_file_info_free(struct sync_file_info *info)
On 11/20/2017 02:25 PM, SF Markus Elfring wrote:
From: Markus Elfring elfring@users.sourceforge.net Date: Mon, 20 Nov 2017 22:20:37 +0100
Add a jump target so that a bit of exception handling can be better reused at the end of this function.
This issue was detected by using the Coccinelle software.
I would like to see the Coccinelle log included in the commit log
Signed-off-by: Markus Elfring elfring@users.sourceforge.net
tools/testing/selftests/sync/sync.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/tools/testing/selftests/sync/sync.c b/tools/testing/selftests/sync/sync.c index f3d599f249b9..d0d55377f6f8 100644 --- a/tools/testing/selftests/sync/sync.c +++ b/tools/testing/selftests/sync/sync.c @@ -92,10 +92,8 @@ static struct sync_file_info *sync_file_info(int fd) return NULL; err = ioctl(fd, SYNC_IOC_FILE_INFO, info);
- if (err < 0) {
free(info);
return NULL;
- }
- if (err < 0)
goto free_info;
num_fences = info->num_fences; @@ -104,22 +102,23 @@ static struct sync_file_info *sync_file_info(int fd) info->num_fences = num_fences; fence_info = calloc(num_fences, sizeof(*fence_info));
if (!fence_info) {
free(info);
return NULL;
}
if (!fence_info)
goto free_info;
info->sync_fence_info = (uint64_t)fence_info; err = ioctl(fd, SYNC_IOC_FILE_INFO, info); if (err < 0) { free(fence_info);
Why not add a free_fence_info to make it consistent?
free(info);
return NULL;
} }goto free_info;
return info;
+free_info:
- free(info);
- return NULL;
} static void sync_file_info_free(struct sync_file_info *info)
thanks, -- Shuah -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Add a jump target so that a bit of exception handling can be better reused at the end of this function.
This issue was detected by using the Coccinelle software.
I would like to see the Coccinelle log included in the commit log
I guess that I can not append the kind of report you might be looking for so far. This small update suggestion is just another result from one of my evolving scripts for the semantic patch language.
It was discussed under the topic “Comparing statement lists with SmPL” to some degree. https://systeme.lip6.fr/pipermail/cocci/2017-August/004388.html
@@ -104,22 +102,23 @@ static struct sync_file_info *sync_file_info(int fd) info->num_fences = num_fences; fence_info = calloc(num_fences, sizeof(*fence_info));
if (!fence_info) {
free(info);
return NULL;
}
if (!fence_info)
goto free_info;
info->sync_fence_info = (uint64_t)fence_info; err = ioctl(fd, SYNC_IOC_FILE_INFO, info); if (err < 0) { free(fence_info);
Why not add a free_fence_info to make it consistent?
It did not add another jump label because it would be used only once for this if branch (according to your enquiry).
free(info);
return NULL;
goto free_info;
Do you expect a second update approach for this source code place?
Regards, Markus -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
linux-kselftest-mirror@lists.linaro.org