public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/arm/morello/main] cheri: fix invalid pointer use after realloc in localealias
@ 2022-08-05 19:35 Szabolcs Nagy
  0 siblings, 0 replies; 4+ messages in thread
From: Szabolcs Nagy @ 2022-08-05 19:35 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d0db1e8a122459e0f37b97eeca2bf399cadb043e

commit d0db1e8a122459e0f37b97eeca2bf399cadb043e
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Fri Mar 18 06:55:31 2022 +0000

    cheri: fix invalid pointer use after realloc in localealias
    
    This code updates pointers to a reallocated buffer to point to the new
    buffer.  It is not conforming (does arithmetics with freed pointers),
    but it also creates invalid capabilities because the provenance is
    derived from the original freed pointers instead of the new buffer.
    
    Change the arithmetics so provenance is derived from the new buffer.
    The conformance issue is not fixed.

Diff:
---
 intl/localealias.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/intl/localealias.c b/intl/localealias.c
index b36092363a..0401f35f9d 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -340,8 +340,10 @@ read_alias_file (const char *fname, int fname_len)
 
 			  for (i = 0; i < nmap; i++)
 			    {
-			      map[i].alias += new_pool - string_space;
-			      map[i].value += new_pool - string_space;
+			      map[i].alias = new_pool
+					     + (map[i].alias - string_space);
+			      map[i].value = new_pool
+					     + (map[i].value - string_space);
 			    }
 			}


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [glibc/arm/morello/main] cheri: fix invalid pointer use after realloc in localealias
@ 2022-11-23 14:46 Szabolcs Nagy
  0 siblings, 0 replies; 4+ messages in thread
From: Szabolcs Nagy @ 2022-11-23 14:46 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cd345f5c03e504faca874e1da74bc966a379cedb

commit cd345f5c03e504faca874e1da74bc966a379cedb
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Fri Mar 18 06:55:31 2022 +0000

    cheri: fix invalid pointer use after realloc in localealias
    
    This code updates pointers to a reallocated buffer to point to the new
    buffer.  It is not conforming (does arithmetics with freed pointers),
    but it also creates invalid capabilities because the provenance is
    derived from the original freed pointers instead of the new buffer.
    
    Change the arithmetics so provenance is derived from the new buffer.
    The conformance issue is not fixed.

Diff:
---
 intl/localealias.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/intl/localealias.c b/intl/localealias.c
index b36092363a..0401f35f9d 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -340,8 +340,10 @@ read_alias_file (const char *fname, int fname_len)
 
 			  for (i = 0; i < nmap; i++)
 			    {
-			      map[i].alias += new_pool - string_space;
-			      map[i].value += new_pool - string_space;
+			      map[i].alias = new_pool
+					     + (map[i].alias - string_space);
+			      map[i].value = new_pool
+					     + (map[i].value - string_space);
 			    }
 			}

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [glibc/arm/morello/main] cheri: fix invalid pointer use after realloc in localealias
@ 2022-10-27 13:56 Szabolcs Nagy
  0 siblings, 0 replies; 4+ messages in thread
From: Szabolcs Nagy @ 2022-10-27 13:56 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cf06645316e11077afbc9731693fd19e55619f59

commit cf06645316e11077afbc9731693fd19e55619f59
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Fri Mar 18 06:55:31 2022 +0000

    cheri: fix invalid pointer use after realloc in localealias
    
    This code updates pointers to a reallocated buffer to point to the new
    buffer.  It is not conforming (does arithmetics with freed pointers),
    but it also creates invalid capabilities because the provenance is
    derived from the original freed pointers instead of the new buffer.
    
    Change the arithmetics so provenance is derived from the new buffer.
    The conformance issue is not fixed.

Diff:
---
 intl/localealias.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/intl/localealias.c b/intl/localealias.c
index b36092363a..0401f35f9d 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -340,8 +340,10 @@ read_alias_file (const char *fname, int fname_len)
 
 			  for (i = 0; i < nmap; i++)
 			    {
-			      map[i].alias += new_pool - string_space;
-			      map[i].value += new_pool - string_space;
+			      map[i].alias = new_pool
+					     + (map[i].alias - string_space);
+			      map[i].value = new_pool
+					     + (map[i].value - string_space);
 			    }
 			}

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [glibc/arm/morello/main] cheri: fix invalid pointer use after realloc in localealias
@ 2022-10-26 15:18 Szabolcs Nagy
  0 siblings, 0 replies; 4+ messages in thread
From: Szabolcs Nagy @ 2022-10-26 15:18 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e285f1d642b5ea89710ef1882b89caa9fa2f6e4

commit 9e285f1d642b5ea89710ef1882b89caa9fa2f6e4
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date:   Fri Mar 18 06:55:31 2022 +0000

    cheri: fix invalid pointer use after realloc in localealias
    
    This code updates pointers to a reallocated buffer to point to the new
    buffer.  It is not conforming (does arithmetics with freed pointers),
    but it also creates invalid capabilities because the provenance is
    derived from the original freed pointers instead of the new buffer.
    
    Change the arithmetics so provenance is derived from the new buffer.
    The conformance issue is not fixed.

Diff:
---
 intl/localealias.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/intl/localealias.c b/intl/localealias.c
index b36092363a..0401f35f9d 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -340,8 +340,10 @@ read_alias_file (const char *fname, int fname_len)
 
 			  for (i = 0; i < nmap; i++)
 			    {
-			      map[i].alias += new_pool - string_space;
-			      map[i].value += new_pool - string_space;
+			      map[i].alias = new_pool
+					     + (map[i].alias - string_space);
+			      map[i].value = new_pool
+					     + (map[i].value - string_space);
 			    }
 			}

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-11-23 14:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-05 19:35 [glibc/arm/morello/main] cheri: fix invalid pointer use after realloc in localealias Szabolcs Nagy
2022-10-26 15:18 Szabolcs Nagy
2022-10-27 13:56 Szabolcs Nagy
2022-11-23 14:46 Szabolcs Nagy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).