[PATCH] openggsn[master]: ggsn: Fix DNS not sent in PDP context response

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Wed Aug 30 13:57:52 UTC 2017


Review at  https://gerrit.osmocom.org/3748

ggsn: Fix DNS not sent in PDP context response

During IPv6 support implementation, helper function pco_contains_proto
was added which contains an error: It is only capable of finding first
protocol correctly, and as a consequence, in my setup DNS servers where not
sent back to the SGSN/MS, resulting in phone being able to connect to
IPs but not to domain names which required DNS resolution.

The condition in the while loop is also changed to match the increment
of the variable inside the loop to make it easier to understand at first
glance.

Fixes: 1ae98777d9b1ee62e6900caf4bb580d1a42bb416

Change-Id: Icc2e6716c33d78d3c3e000f529806228d8aa155e
---
M ggsn/ggsn.c
1 file changed, 2 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/openggsn refs/changes/48/3748/1

diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index c6a6dac..1e92956 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -215,14 +215,14 @@
 	uint8_t *cur = pco->v + 1;
 
 	/* iterate over PCO and check if protocol contained */
-	while (cur + 2 < pco->v + pco->l) {
+	while (cur + 3 <= pco->v + pco->l) {
 		uint16_t cur_prot = osmo_load16be(cur);
 		uint8_t cur_len = cur[2];
 		if (cur_prot == prot)
 			return true;
 		if (cur_len == 0)
 			break;
-		cur += cur_len;
+		cur += cur_len + 3;
 	}
 	return false;
 }

-- 
To view, visit https://gerrit.osmocom.org/3748
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icc2e6716c33d78d3c3e000f529806228d8aa155e
Gerrit-PatchSet: 1
Gerrit-Project: openggsn
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>



More information about the gerrit-log mailing list