swtpm_setup: Move common code into new function read_certificate_file()

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
diff --git a/src/swtpm_setup/swtpm_setup.c b/src/swtpm_setup/swtpm_setup.c
index a42256c..1f8f9fd 100644
--- a/src/swtpm_setup/swtpm_setup.c
+++ b/src/swtpm_setup/swtpm_setup.c
@@ -343,6 +343,15 @@
     return 1;
 }
 
+static int read_certificate_file(const gchar *certsdir, const gchar *filename,
+                                 gchar **filecontent, size_t *filecontent_len,
+                                 gchar **certfile)
+{
+    *certfile = g_strjoin(G_DIR_SEPARATOR_S, certsdir, filename, NULL);
+
+    return read_file(*certfile, filecontent, filecontent_len);
+}
+
 /* Create EK and certificate for a TPM 2 */
 static int tpm2_create_ek_and_cert(unsigned long flags, const gchar *config_file,
                                    const gchar *certsdir, const gchar *vmid,
@@ -374,11 +383,11 @@
 
         for (idx = 0; flags_to_certfiles[idx].filename; idx++) {
             if (flags & flags_to_certfiles[idx].flag) {
-                g_free(certfile);
-                certfile = g_strjoin(G_DIR_SEPARATOR_S, certsdir, flags_to_certfiles[idx].filename, NULL);
-
                 SWTPM_G_FREE(filecontent);
-                ret = read_file(certfile, &filecontent, &filecontent_len);
+                SWTPM_G_FREE(certfile);
+
+                ret = read_certificate_file(certsdir, flags_to_certfiles[idx].filename,
+                                            &filecontent, &filecontent_len, &certfile);
                 if (ret != 0)
                     return 1;
 
@@ -613,12 +622,11 @@
 
     for (idx = 0; flags_to_certfiles[idx].filename; idx++) {
         if (flags & flags_to_certfiles[idx].flag) {
-            g_free(certfile);
-            certfile = g_strjoin(G_DIR_SEPARATOR_S, certsdir,
-                                 flags_to_certfiles[idx].filename, NULL);
-
             SWTPM_G_FREE(filecontent);
-            ret = read_file(certfile, &filecontent, &filecontent_len);
+            SWTPM_G_FREE(certfile);
+
+            ret = read_certificate_file(certsdir, flags_to_certfiles[idx].filename,
+                                        &filecontent, &filecontent_len, &certfile);
             if (ret != 0)
                 return 1;