Closed
Conversation
There was a problem hiding this comment.
9 issues found across 9 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="samples/openapi3/client/petstore/go/go-petstore/client.go">
<violation number="1" location="samples/openapi3/client/petstore/go/go-petstore/client.go:541">
P2: Resource leak: if `CreateFormFile` or `io.Copy` fails, the file handle is never closed. Use `defer file.Close()` immediately after opening the file to ensure cleanup in all error paths.</violation>
</file>
<file name="modules/openapi-generator/src/main/resources/go/client.mustache">
<violation number="1" location="modules/openapi-generator/src/main/resources/go/client.mustache:606">
P2: File descriptor leak on error paths. If `CreateFormFile` or `io.Copy` fails, the function returns without closing the file. Use `defer file.Close()` immediately after opening the file to ensure proper cleanup regardless of how the function exits.</violation>
</file>
<file name="samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go">
<violation number="1" location="samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go:491">
P2: File handle leak on error paths. If `CreateFormFile` or `io.Copy` fails, the function returns without closing the file. Use `defer file.Close()` immediately after opening the file to ensure proper cleanup in all code paths.</violation>
</file>
<file name="samples/client/echo_api/go-external-refs/client.go">
<violation number="1" location="samples/client/echo_api/go-external-refs/client.go:517">
P2: File handle may leak if `CreateFormFile` or `io.Copy` fails before `file.Close()` is reached. Use `defer file.Close()` immediately after the successful `os.Open()` to ensure the file is always closed regardless of error paths.</violation>
</file>
<file name="samples/openapi3/client/petstore/go-petstore-withXml/client.go">
<violation number="1" location="samples/openapi3/client/petstore/go-petstore-withXml/client.go:513">
P2: File handle will leak if `CreateFormFile` or `io.Copy` fails. Use `defer file.Close()` immediately after opening the file to ensure proper cleanup in all error paths.</violation>
</file>
<file name="samples/openapi3/client/petstore/go/go-petstore-aws-signature/client.go">
<violation number="1" location="samples/openapi3/client/petstore/go/go-petstore-aws-signature/client.go:545">
P2: File handle leak: if `CreateFormFile` or `io.Copy` fails, the function returns early without closing the opened file. Use `defer file.Close()` immediately after `os.Open()` to ensure the file is always closed.</violation>
</file>
<file name="samples/client/echo_api/go/client.go">
<violation number="1" location="samples/client/echo_api/go/client.go:517">
P2: File handle leaks if `CreateFormFile` or `io.Copy` fails. Add `defer file.Close()` immediately after opening the file to ensure the file is closed on all error paths. This is the idiomatic Go pattern for resource cleanup.</violation>
</file>
<file name="samples/client/petstore/go/go-petstore/client.go">
<violation number="1" location="samples/client/petstore/go/go-petstore/client.go:523">
P2: Resource leak: if `CreateFormFile` or `io.Copy` fails, the file handle is never closed. Use `defer file.Close()` immediately after opening the file to ensure cleanup on all error paths.</violation>
</file>
<file name="samples/openapi3/client/petstore/go-petstore-generateMarshalJSON-false/client.go">
<violation number="1" location="samples/openapi3/client/petstore/go-petstore-generateMarshalJSON-false/client.go:513">
P2: File resource leak on error paths. If `CreateFormFile` or `io.Copy` fails, the file handle is never closed. Use `defer file.Close()` immediately after opening the file to ensure cleanup on all code paths.</violation>
</file>
Reply to cubic to teach it or ask questions. Tag @cubic-dev-ai to re-run a review.
modules/openapi-generator/src/main/resources/go/client.mustache
Outdated
Show resolved
Hide resolved
samples/openapi3/client/extensions/x-auth-id-alias/go-experimental/client.go
Show resolved
Hide resolved
| } | ||
| err = file.Close() | ||
|
|
||
| part, err := w.CreateFormFile(fieldName, filepath.Base(path)) |
There was a problem hiding this comment.
P2: Resource leak: if CreateFormFile or io.Copy fails, the file handle is never closed. Use defer file.Close() immediately after opening the file to ensure cleanup on all error paths.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At samples/client/petstore/go/go-petstore/client.go, line 523:
<comment>Resource leak: if `CreateFormFile` or `io.Copy` fails, the file handle is never closed. Use `defer file.Close()` immediately after opening the file to ensure cleanup on all error paths.</comment>
<file context>
@@ -519,17 +519,18 @@ func addFile(w *multipart.Writer, fieldName, path string) error {
}
- err = file.Close()
+
+ part, err := w.CreateFormFile(fieldName, filepath.Base(path))
if err != nil {
return err
</file context>
samples/openapi3/client/petstore/go-petstore-generateMarshalJSON-false/client.go
Outdated
Show resolved
Hide resolved
This reverts commit b35b9a2.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR checklist
Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*.IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
master(upcoming7.x.0minor release - breaking changes with fallbacks),8.0.x(breaking changes without fallbacks)"fixes #123"present in the PR description)Summary by cubic
Fixes multipart file uploads in generated Go clients by closing the file after copying to the form part, preventing read-on-closed-file errors and ensuring proper resource cleanup.
Written for commit 6ca94d0. Summary will update automatically on new commits.