]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[peerdist] Remove userptr_t from PeerDist content information parsing
authorMichael Brown <mcb30@ipxe.org>
Tue, 29 Apr 2025 08:17:14 +0000 (09:17 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 29 Apr 2025 10:28:45 +0000 (11:28 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/ipxe/pccrc.h
src/net/pccrc.c
src/tests/pccrc_test.c

index 7f0963428515873604c215b319d8756482b930ce..bec2b271af78dd0b83956f0f0d27e949ea972cbf 100644 (file)
@@ -11,7 +11,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 
 #include <stdint.h>
 #include <byteswap.h>
-#include <ipxe/uaccess.h>
 #include <ipxe/crypto.h>
 
 /******************************************************************************
@@ -300,7 +299,7 @@ struct peerdist_info_v2_segment {
 /** Raw content information */
 struct peerdist_raw {
        /** Data buffer */
-       userptr_t data;
+       const void *data;
        /** Length of data buffer */
        size_t len;
 };
@@ -435,7 +434,7 @@ struct peerdist_info_operations {
 
 extern struct digest_algorithm sha512_trunc_algorithm;
 
-extern int peerdist_info ( userptr_t data, size_t len,
+extern int peerdist_info ( const void *data, size_t len,
                           struct peerdist_info *info );
 extern int peerdist_info_segment ( const struct peerdist_info *info,
                                   struct peerdist_info_segment *segment,
index a94bc0e1197b21212ade8216badc6edcca5b7025..29adc4b164e10e0eb23c1a6b3897a360fcd66d23 100644 (file)
@@ -88,7 +88,7 @@ static int peerdist_info_get ( const struct peerdist_info *info, void *data,
        }
 
        /* Copy data */
-       copy_from_user ( data, info->raw.data, offset, len );
+       memcpy ( data, ( info->raw.data + offset ), len );
 
        return 0;
 }
@@ -667,7 +667,8 @@ static struct peerdist_info_operations peerdist_info_v2_operations = {
  * @v info             Content information to fill in
  * @ret rc             Return status code
  */
-int peerdist_info ( userptr_t data, size_t len, struct peerdist_info *info ) {
+int peerdist_info ( const void *data, size_t len,
+                   struct peerdist_info *info ) {
        union peerdist_info_version version;
        int rc;
 
index e69493202417cdf3d01b5e7d40f7f67de0dc02e9..f3f38d360adc94189995f0ccb9d811b09f9d8e0a 100644 (file)
@@ -35,7 +35,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 #include <stdint.h>
 #include <string.h>
 #include <assert.h>
-#include <ipxe/uaccess.h>
 #include <ipxe/pccrc.h>
 #include <ipxe/sha256.h>
 #include <ipxe/sha512.h>
@@ -362,11 +361,10 @@ static void peerdist_info_okx ( struct peerdist_info_test *test,
                                const char *file, unsigned int line ) {
 
        /* Parse content information */
-       okx ( peerdist_info ( virt_to_user ( test->data ), test->len,
-                             info ) == 0, file, line );
+       okx ( peerdist_info ( test->data, test->len, info ) == 0, file, line );
 
        /* Verify content information */
-       okx ( info->raw.data == virt_to_user ( test->data ), file, line );
+       okx ( info->raw.data == test->data, file, line );
        okx ( info->raw.len == test->len, file, line );
        okx ( info->digest == test->expected_digest, file, line );
        okx ( info->digestsize == test->expected_digestsize, file, line );