diff mbox series

[boot-wrapper] model.lds.S: Quote file paths

Message ID 20230102132446.2056889-1-kevin.brodsky@arm.com (mailing list archive)
State New, archived
Headers show
Series [boot-wrapper] model.lds.S: Quote file paths | expand

Commit Message

Kevin Brodsky Jan. 2, 2023, 1:24 p.m. UTC
Inserting arbitrary paths in a linker script verbatim can be
problematic, even if they don't contain whitespaces, as ld has a
special interpretation for certain special characters (such as @).

Fix this by quoting all user-provided paths in model.lds.S using the
preprocessor.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 model.lds.S | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

Comments

Mark Rutland Jan. 30, 2023, 2:41 p.m. UTC | #1
On Mon, Jan 02, 2023 at 01:24:46PM +0000, Kevin Brodsky wrote:
> Inserting arbitrary paths in a linker script verbatim can be
> problematic, even if they don't contain whitespaces, as ld has a
> special interpretation for certain special characters (such as @).
> 
> Fix this by quoting all user-provided paths in model.lds.S using the
> preprocessor.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>

Thanks; applied.

Mark.

> ---
>  model.lds.S | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/model.lds.S b/model.lds.S
> index dacaa25ba9fd..e07cbc04b9fa 100644
> --- a/model.lds.S
> +++ b/model.lds.S
> @@ -7,6 +7,9 @@
>   * found in the LICENSE.txt file.
>   */
>  
> +#define _STR(s) #s
> +#define STR(s) _STR(s)
> +
>  #ifdef BOOTWRAPPER_32
>  OUTPUT_FORMAT("elf32-littlearm")
>  OUTPUT_ARCH(arm)
> @@ -17,13 +20,13 @@ OUTPUT_ARCH(aarch64)
>  TARGET(binary)
>  
>  #ifdef XEN
> -INPUT(XEN)
> +INPUT(STR(XEN))
>  #endif
> -INPUT(KERNEL)
> +INPUT(STR(KERNEL))
>  INPUT(./fdt.dtb)
>  
>  #ifdef USE_INITRD
> -INPUT(FILESYSTEM)
> +INPUT(STR(FILESYSTEM))
>  #endif
>  
>  ENTRY(_start)
> @@ -36,14 +39,14 @@ SECTIONS
>  	 */
>  	.kernel (PHYS_OFFSET + KERNEL_OFFSET): {
>  		kernel__start = .;
> -		KERNEL
> +		STR(KERNEL)
>  		kernel__end = .;
>  	}
>  
>  #ifdef XEN
>  	.xen (PHYS_OFFSET + XEN_OFFSET): {
>  		xen__start = .;
> -		XEN
> +		STR(XEN)
>  		xen__end = .;
>  	}
>  
> @@ -62,7 +65,7 @@ SECTIONS
>  #ifdef USE_INITRD
>  	.filesystem (PHYS_OFFSET + FS_OFFSET): {
>  		filesystem__start = .;
> -		FILESYSTEM
> +		STR(FILESYSTEM)
>  		filesystem__end = .;
>  	}
>  #endif
> -- 
> 2.38.1
>
diff mbox series

Patch

diff --git a/model.lds.S b/model.lds.S
index dacaa25ba9fd..e07cbc04b9fa 100644
--- a/model.lds.S
+++ b/model.lds.S
@@ -7,6 +7,9 @@ 
  * found in the LICENSE.txt file.
  */
 
+#define _STR(s) #s
+#define STR(s) _STR(s)
+
 #ifdef BOOTWRAPPER_32
 OUTPUT_FORMAT("elf32-littlearm")
 OUTPUT_ARCH(arm)
@@ -17,13 +20,13 @@  OUTPUT_ARCH(aarch64)
 TARGET(binary)
 
 #ifdef XEN
-INPUT(XEN)
+INPUT(STR(XEN))
 #endif
-INPUT(KERNEL)
+INPUT(STR(KERNEL))
 INPUT(./fdt.dtb)
 
 #ifdef USE_INITRD
-INPUT(FILESYSTEM)
+INPUT(STR(FILESYSTEM))
 #endif
 
 ENTRY(_start)
@@ -36,14 +39,14 @@  SECTIONS
 	 */
 	.kernel (PHYS_OFFSET + KERNEL_OFFSET): {
 		kernel__start = .;
-		KERNEL
+		STR(KERNEL)
 		kernel__end = .;
 	}
 
 #ifdef XEN
 	.xen (PHYS_OFFSET + XEN_OFFSET): {
 		xen__start = .;
-		XEN
+		STR(XEN)
 		xen__end = .;
 	}
 
@@ -62,7 +65,7 @@  SECTIONS
 #ifdef USE_INITRD
 	.filesystem (PHYS_OFFSET + FS_OFFSET): {
 		filesystem__start = .;
-		FILESYSTEM
+		STR(FILESYSTEM)
 		filesystem__end = .;
 	}
 #endif