libgpo: Fix CID 1438462 Error handling issues (CHECKED_RETURN)
[sfrench/samba-autobuild/.git] / source3 / libgpo / gpext / registry.c
index 525493fcb2cb385cf3a09ceb006840a3046ea63e..ffa1d020fb6fa93e5525e5eed7b6fc91277fbac9 100644 (file)
@@ -111,6 +111,7 @@ static bool gp_reg_entry_from_file_entry(TALLOC_CTX *mem_ctx,
        struct registry_value *data = NULL;
        struct gp_registry_entry *entry = NULL;
        enum gp_reg_action action = GP_REG_ACTION_NONE;
+       enum ndr_err_code ndr_err;
 
        ZERO_STRUCTP(*reg_entry);
 
@@ -120,8 +121,17 @@ static bool gp_reg_entry_from_file_entry(TALLOC_CTX *mem_ctx,
 
        data->type = r->type;
 
-       ndr_push_union_blob(&data->data, mem_ctx, &r->data, r->type,
-                           (ndr_push_flags_fn_t)ndr_push_winreg_Data);
+       ndr_err = ndr_push_union_blob(
+               &data->data,
+               mem_ctx,
+               &r->data,
+               r->type,
+               (ndr_push_flags_fn_t)ndr_push_winreg_Data);
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+               DBG_WARNING("ndr_push_winreg_Data failed: %s\n",
+                           ndr_errstr(ndr_err));
+               return false;
+       }
 
        entry = talloc_zero(mem_ctx, struct gp_registry_entry);
        if (!entry)