lib: Avoid dereferencing NULL error values
authorRyan Gonzalez <ryan.gonzalez@collabora.com>
Fri, 12 Nov 2021 00:07:06 +0000 (18:07 -0600)
committerRyan Gonzalez <ryan.gonzalez@collabora.com>
Fri, 12 Nov 2021 14:29:05 +0000 (08:29 -0600)
Otherwise, this will segfault when callers don't need any exact errors.

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
src/libostree/ostree-repo-static-delta-core.c
src/libostree/ostree-sign-ed25519.c

index d8c33b7c29d83d5d9d34eae6efc465d2b67c8018..084c20cd32a3306aed30a64a51a59de218cef7eb 100644 (file)
@@ -457,9 +457,15 @@ ostree_repo_static_delta_execute_offline_with_signature (OstreeRepo   *self,
 
       if (sign)
         {
-          verified = _ostree_repo_static_delta_verify_signature (self, meta_fd, sign, NULL, error);
-          if (*error)
-            return FALSE;
+          g_autoptr(GError) local_error = NULL;
+
+          verified = _ostree_repo_static_delta_verify_signature (self, meta_fd, sign, NULL, &local_error);
+          if (local_error != NULL)
+            {
+              g_propagate_error (error, g_steal_pointer (&local_error));
+              return FALSE;
+            }
+
           if (!verified)
             return glnx_throw (error, "Delta signature verification failed");
         }
index d728afdeccc8a4dcbe48648e8772546ded82d6e9..1eaff6a7a2da15604b43d20e5332c6a8694ea624 100644 (file)
@@ -487,12 +487,16 @@ _load_pk_from_stream (OstreeSign *self,
   while (TRUE)
     {
       gsize len = 0;
-      g_autofree char *line = g_data_input_stream_read_line (key_data_in, &len, NULL, error);
       g_autoptr (GVariant) pk = NULL;
       gboolean added = FALSE;
+      g_autoptr(GError) local_error = NULL;
+      g_autofree char *line = g_data_input_stream_read_line (key_data_in, &len, NULL, &local_error);
 
-      if (*error != NULL)
-        return FALSE;
+      if (local_error != NULL)
+        {
+          g_propagate_error (error, g_steal_pointer (&local_error));
+          return FALSE;
+        }
 
       if (line == NULL)
         return ret;