ObjFW  Check-in [dcc3e6aab3]

Overview
Comment:Work around buggy string overflow checker in GCC
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: dcc3e6aab3716bbd01c7a1a94d8ec2786d8b8022b11c5aef5e4b845e7fcc0ada
User & Date: js on 2021-10-15 15:59:55
Other Links: manifest | tags
Context
2021-10-15
16:15
OFUDPSocket: Fix compiling for HP-UX / Wii / 3DS check-in: 50641eb716 user: js tags: trunk
15:59
Work around buggy string overflow checker in GCC check-in: dcc3e6aab3 user: js tags: trunk
12:13
Add GitHub Actions check-in: 6f5189d4f4 user: js tags: trunk
Changes

Modified src/OFURL.m from [110acb1505] to [73419ef6a6].

584
585
586
587
588
589
590












591
592

593
594
595
596
597
598
599
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612







+
+
+
+
+
+
+
+
+
+
+
+


+







				    initWithUTF8String: tmp + 1];

				OFURLVerifyIsEscaped(_URLEncodedQuery,
				    [OFCharacterSet
				    URLQueryAllowedCharacterSet]);
			}

			/*
			 * Some versions of GCC issue a false-positive warning
			 * (turned error) about a string overflow. This is a
			 * false positive because UTF8String is set to tmp
			 * above and tmp is either NULL or points *after* the
			 * slash for the path. So all we do here is go back to
			 * that slash and restore it.
			 */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wunknown-warning-option"
#pragma GCC diagnostic ignored "-Wstringop-overflow"
			UTF8String--;
			*UTF8String = '/';
#pragma GCC diagnostic pop

			_URLEncodedPath = [[OFString alloc]
			    initWithUTF8String: UTF8String];

			OFURLVerifyIsEscaped(_URLEncodedPath,
			    [OFCharacterSet URLPathAllowedCharacterSet]);
		}