libloc: Add upstream patch to fix a buffer issue.

Message ID 20200719182141.3672-1-stefan.schantl@ipfire.org
State Accepted
Commit 99f8980deccb7491a75ec86036dbc32614c50b43
Headers
Series libloc: Add upstream patch to fix a buffer issue. |

Commit Message

Stefan Schantl July 19, 2020, 6:21 p.m. UTC
  Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 lfs/libloc                                    |  3 +++
 ...te-buffer-when-reading-from-database.patch | 24 +++++++++++++++++++
 2 files changed, 27 insertions(+)
 create mode 100644 src/patches/libloc-0.9.3-country-terminate-buffer-when-reading-from-database.patch
  

Patch

diff --git a/lfs/libloc b/lfs/libloc
index 5cf3e0819..4f392baca 100644
--- a/lfs/libloc
+++ b/lfs/libloc
@@ -78,6 +78,9 @@  $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xvf $(DIR_DL)/$(DL_FILE)
 
+	# Apply upstream patches
+	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libloc-0.9.3-country-terminate-buffer-when-reading-from-database.patch
+
 	# Add patch for i585 to disable the stack protector.
 	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/libloc-0.9.3-perl-no-stack-protector.patch
 
diff --git a/src/patches/libloc-0.9.3-country-terminate-buffer-when-reading-from-database.patch b/src/patches/libloc-0.9.3-country-terminate-buffer-when-reading-from-database.patch
new file mode 100644
index 000000000..0ad9229fd
--- /dev/null
+++ b/src/patches/libloc-0.9.3-country-terminate-buffer-when-reading-from-database.patch
@@ -0,0 +1,24 @@ 
+commit 61d3516bbfce6b4e6393825329c07b1e2a88d47d
+Author: Michael Tremer <michael.tremer@ipfire.org>
+Date:   Mon Jul 13 10:47:30 2020 +0000
+
+    country: Terminate buffer when reading from database
+    
+    Compilers on ARM do not seem to initialise the buffer.
+    
+    Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+
+diff --git a/src/country.c b/src/country.c
+index d6ddf50..2ba93e6 100644
+--- a/src/country.c
++++ b/src/country.c
+@@ -125,6 +125,9 @@ int loc_country_new_from_database_v1(struct loc_ctx* ctx, struct loc_stringpool*
+ 	// Read country code
+ 	loc_country_code_copy(buffer, dbobj->code);
+ 
++	// Terminate buffer
++	buffer[2] = '\0';
++
+ 	// Create a new country object
+ 	int r = loc_country_new(ctx, country, buffer);
+ 	if (r)