[PATCH] sev: sev_get_attestation_report use g_autofree

Dr. David Alan Gilbert (git) posted 1 patch 2 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/next-importer-push tags/patchew/20210603113017.34922-1-dgilbert@redhat.com
target/i386/sev.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
[PATCH] sev: sev_get_attestation_report use g_autofree
Posted by Dr. David Alan Gilbert (git) 2 years, 10 months ago
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Removes a whole bunch of g_free's and a goto.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 target/i386/sev.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/target/i386/sev.c b/target/i386/sev.c
index 83df8c09f6..0bd976b4d0 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -500,8 +500,8 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
     struct kvm_sev_attestation_report input = {};
     SevAttestationReport *report = NULL;
     SevGuestState *sev = sev_guest;
-    guchar *data;
-    guchar *buf;
+    g_autofree guchar *data = NULL;
+    g_autofree guchar *buf = NULL;
     gsize len;
     int err = 0, ret;
 
@@ -521,7 +521,6 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
     if (len != sizeof(input.mnonce)) {
         error_setg(errp, "SEV: mnonce must be %zu bytes (got %" G_GSIZE_FORMAT ")",
                 sizeof(input.mnonce), len);
-        g_free(buf);
         return NULL;
     }
 
@@ -532,7 +531,6 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
         if (err != SEV_RET_INVALID_LEN) {
             error_setg(errp, "failed to query the attestation report length "
                     "ret=%d fw_err=%d (%s)", ret, err, fw_error_to_str(err));
-            g_free(buf);
             return NULL;
         }
     }
@@ -547,7 +545,7 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
     if (ret) {
         error_setg_errno(errp, errno, "Failed to get attestation report"
                 " ret=%d fw_err=%d (%s)", ret, err, fw_error_to_str(err));
-        goto e_free_data;
+        return NULL;
     }
 
     report = g_new0(SevAttestationReport, 1);
@@ -555,9 +553,6 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
 
     trace_kvm_sev_attestation_report(mnonce, report->data);
 
-e_free_data:
-    g_free(data);
-    g_free(buf);
     return report;
 }
 
-- 
2.31.1


Re: [PATCH] sev: sev_get_attestation_report use g_autofree
Posted by Brijesh Singh 2 years, 10 months ago
On 6/3/21 6:30 AM, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> Removes a whole bunch of g_free's and a goto.
>
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>


Reviewed-by: Brijesh Singh <brijesh.singh@amd.com>

thanks

> ---
>  target/i386/sev.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/target/i386/sev.c b/target/i386/sev.c
> index 83df8c09f6..0bd976b4d0 100644
> --- a/target/i386/sev.c
> +++ b/target/i386/sev.c
> @@ -500,8 +500,8 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
>      struct kvm_sev_attestation_report input = {};
>      SevAttestationReport *report = NULL;
>      SevGuestState *sev = sev_guest;
> -    guchar *data;
> -    guchar *buf;
> +    g_autofree guchar *data = NULL;
> +    g_autofree guchar *buf = NULL;
>      gsize len;
>      int err = 0, ret;
>  
> @@ -521,7 +521,6 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
>      if (len != sizeof(input.mnonce)) {
>          error_setg(errp, "SEV: mnonce must be %zu bytes (got %" G_GSIZE_FORMAT ")",
>                  sizeof(input.mnonce), len);
> -        g_free(buf);
>          return NULL;
>      }
>  
> @@ -532,7 +531,6 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
>          if (err != SEV_RET_INVALID_LEN) {
>              error_setg(errp, "failed to query the attestation report length "
>                      "ret=%d fw_err=%d (%s)", ret, err, fw_error_to_str(err));
> -            g_free(buf);
>              return NULL;
>          }
>      }
> @@ -547,7 +545,7 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
>      if (ret) {
>          error_setg_errno(errp, errno, "Failed to get attestation report"
>                  " ret=%d fw_err=%d (%s)", ret, err, fw_error_to_str(err));
> -        goto e_free_data;
> +        return NULL;
>      }
>  
>      report = g_new0(SevAttestationReport, 1);
> @@ -555,9 +553,6 @@ sev_get_attestation_report(const char *mnonce, Error **errp)
>  
>      trace_kvm_sev_attestation_report(mnonce, report->data);
>  
> -e_free_data:
> -    g_free(data);
> -    g_free(buf);
>      return report;
>  }
>  

Re: [PATCH] sev: sev_get_attestation_report use g_autofree
Posted by Connor Kuehl 2 years, 10 months ago
On 6/3/21 6:30 AM, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> Removes a whole bunch of g_free's and a goto.
> 
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

Reviewed-by: Connor Kuehl <ckuehl@redhat.com>