Re: [PATCH 3/6] linux-user: Adjust brk for load_bias

2023-08-17 Thread Richard Henderson

On 8/17/23 09:04, Michael Tokarev wrote:

16.08.2023 21:14, Richard Henderson wrote:

PIE executables are usually linked at offset 0 and are
relocated somewhere during load.  The hiaddr needs to
be adjusted to keep the brk next to the executable.

Cc: qemu-sta...@nongnu.org
Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to 
executable")


FWIW, 1f356e8c013 is v8.1.0-rc2-86, - why did you Cc qemu-stable@?

If this "Adjust brk for load_bias" fix isn't supposed to be part of 8.1.0 
release,
sure thing I'll pick it up for stable-8.1, but it looks like it should be in 
8.1.0.

Or are you saying 1f356e8c013 should be picked for stable-8.0, together with 
this one?

(We're yet to decide if stable-8.0 should have any recent linux-user changes).


This has missed 8.1.0-rc4 and therefore will not be in 8.1.0.
I have tagged it stable for stable-8.1 for 8.1.1.


r~




Re: [PATCH 3/6] linux-user: Adjust brk for load_bias

2023-08-17 Thread Richard Henderson

On 8/17/23 01:53, Philippe Mathieu-Daudé wrote:

On 16/8/23 20:14, Richard Henderson wrote:

PIE executables are usually linked at offset 0 and are
relocated somewhere during load.  The hiaddr needs to
be adjusted to keep the brk next to the executable.

Cc: qemu-sta...@nongnu.org
Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to 
executable")

Signed-off-by: Richard Henderson 
---
  linux-user/elfload.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index ccfbf82836..ab11f141c3 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -3278,7 +3278,7 @@ static void load_elf_image(const char *image_name, const 
ImageSource *src,

  info->start_data = -1;
  info->end_data = 0;
  /* Usual start for brk is after all sections of the main executable. */
-    info->brk = TARGET_PAGE_ALIGN(hiaddr);
+    info->brk = TARGET_PAGE_ALIGN(hiaddr + load_bias);


Did you got some odd behavior or figured that by
code review?

Reviewed-by: Philippe Mathieu-Daudé 


Odd behaviour, easily seen by [heap] being weird or missing.


r~




Re: [PATCH 3/6] linux-user: Adjust brk for load_bias

2023-08-17 Thread Michael Tokarev

16.08.2023 21:14, Richard Henderson wrote:

PIE executables are usually linked at offset 0 and are
relocated somewhere during load.  The hiaddr needs to
be adjusted to keep the brk next to the executable.

Cc: qemu-sta...@nongnu.org
Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to 
executable")


FWIW, 1f356e8c013 is v8.1.0-rc2-86, - why did you Cc qemu-stable@?

If this "Adjust brk for load_bias" fix isn't supposed to be part of 8.1.0 
release,
sure thing I'll pick it up for stable-8.1, but it looks like it should be in 
8.1.0.

Or are you saying 1f356e8c013 should be picked for stable-8.0, together with 
this one?

(We're yet to decide if stable-8.0 should have any recent linux-user changes).

/mjt



Re: [PATCH 3/6] linux-user: Adjust brk for load_bias

2023-08-17 Thread Philippe Mathieu-Daudé

On 16/8/23 20:14, Richard Henderson wrote:

PIE executables are usually linked at offset 0 and are
relocated somewhere during load.  The hiaddr needs to
be adjusted to keep the brk next to the executable.

Cc: qemu-sta...@nongnu.org
Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to 
executable")
Signed-off-by: Richard Henderson 
---
  linux-user/elfload.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index ccfbf82836..ab11f141c3 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -3278,7 +3278,7 @@ static void load_elf_image(const char *image_name, const 
ImageSource *src,
  info->start_data = -1;
  info->end_data = 0;
  /* Usual start for brk is after all sections of the main executable. */
-info->brk = TARGET_PAGE_ALIGN(hiaddr);
+info->brk = TARGET_PAGE_ALIGN(hiaddr + load_bias);


Did you got some odd behavior or figured that by
code review?

Reviewed-by: Philippe Mathieu-Daudé 





[PATCH 3/6] linux-user: Adjust brk for load_bias

2023-08-16 Thread Richard Henderson
PIE executables are usually linked at offset 0 and are
relocated somewhere during load.  The hiaddr needs to
be adjusted to keep the brk next to the executable.

Cc: qemu-sta...@nongnu.org
Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close 
to executable")
Signed-off-by: Richard Henderson 
---
 linux-user/elfload.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index ccfbf82836..ab11f141c3 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -3278,7 +3278,7 @@ static void load_elf_image(const char *image_name, const 
ImageSource *src,
 info->start_data = -1;
 info->end_data = 0;
 /* Usual start for brk is after all sections of the main executable. */
-info->brk = TARGET_PAGE_ALIGN(hiaddr);
+info->brk = TARGET_PAGE_ALIGN(hiaddr + load_bias);
 info->elf_flags = ehdr->e_flags;
 
 prot_exec = PROT_EXEC;
-- 
2.34.1