All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] Fix CTLV three-byte tag parsing.
@ 2010-04-22  8:11 Andrzej Zaborowski
  2010-04-22 21:17 ` andrzej zaborowski
  2010-04-22 21:58 ` Denis Kenzior
  0 siblings, 2 replies; 5+ messages in thread
From: Andrzej Zaborowski @ 2010-04-22  8:11 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1376 bytes --]

---
 src/simutil.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/simutil.c b/src/simutil.c
index 9fb111f..822938c 100644
--- a/src/simutil.c
+++ b/src/simutil.c
@@ -210,7 +210,7 @@ void comprehension_tlv_iter_init(struct comprehension_tlv_iter *iter,
 	iter->data = 0;
 }
 
-/* Comprehension TLVs defined in Section 7 of ETSI TS 102.220 */
+/* Comprehension TLVs defined in Section 7 of ETSI TS 101.220 */
 gboolean comprehension_tlv_iter_next(struct comprehension_tlv_iter *iter)
 {
 	const unsigned char *pdu = iter->pdu + iter->pos;
@@ -230,18 +230,18 @@ gboolean comprehension_tlv_iter_next(struct comprehension_tlv_iter *iter)
 		return FALSE;
 
 	/*
-	 * ETSI TS 102.220, Section 7.1.1.2
+	 * ETSI TS 101.220, Section 7.1.1.2
 	 * 
 	 * If byte 1 of the tag is equal to 0x7F, then the tag is encoded
-	 * on the following two bytes, with bit 8 of the 2nd byte of the tag
-	 * being the CR flag.
+	 * on the following two bytes, with bit 8 of the 1st byte of the tag
+	 * as the most significant bit.
 	 */
-	if (tag == 0x7F) {
+	if (tag == 0x7F && !cr) {
 		if ((pdu + 2) > end)
 			return FALSE;
 
 		cr = bit_field(pdu[0], 7, 1);
-		tag = ((pdu[0] & 0x7f) << 7) | pdu[1];
+		tag = ((pdu[0] & 0x7f) << 8) | pdu[1];
 
 		if (tag < 0x0001 || tag > 0x7fff)
 			return FALSE;
-- 
1.6.1


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

end of thread, other threads:[~2010-04-22 22:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-22  8:11 [PATCH 1/3] Fix CTLV three-byte tag parsing Andrzej Zaborowski
2010-04-22 21:17 ` andrzej zaborowski
2010-04-22 21:58 ` Denis Kenzior
2010-04-22  9:13   ` [PATCH] " Andrzej Zaborowski
2010-04-22 22:45     ` Denis Kenzior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.