Skip to content

Commit 45da130

Browse files
committed
Bug [983f933f11] UBSan warnings with null pointer in TclGetProcessGlobal/Tcl_ExternalToUtfDString.
1 parent 98f7401 commit 45da130

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

generic/tclEncoding.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,7 @@ Tcl_ExternalToUtfDStringEx(
12061206

12071207
if (src == NULL) {
12081208
srcLen = 0;
1209+
src = ""; /* Avoid ABSAN warnings about ops on NULL pointers */
12091210
} else if (srcLen < 0) {
12101211
srcLen = encodingPtr->lengthProc(src);
12111212
}
@@ -1342,6 +1343,7 @@ Tcl_ExternalToUtf(
13421343

13431344
if (src == NULL) {
13441345
srcLen = 0;
1346+
src = ""; /* Avoid ABSAN warnings about ops on NULL pointers */
13451347
} else if (srcLen < 0) {
13461348
Encoding *encodingPtr = (Encoding *)encoding;
13471349
if (encodingPtr == NULL) {
@@ -1462,6 +1464,7 @@ Tcl_ExternalToUtfEx(
14621464

14631465
if (src == NULL) {
14641466
srcLen = 0;
1467+
src = ""; /* Avoid ABSAN warnings about ops on NULL pointers */
14651468
} else if (srcLen < 0) {
14661469
srcLen = encodingPtr->lengthProc(src);
14671470
}
@@ -1773,6 +1776,7 @@ Tcl_UtfToExternalDStringEx(
17731776

17741777
if (src == NULL) {
17751778
srcLen = 0;
1779+
src = ""; /* Avoid ABSAN warnings about ops on NULL pointers */
17761780
} else if (srcLen < 0) {
17771781
srcLen = strlen(src);
17781782
}
@@ -1911,6 +1915,7 @@ Tcl_UtfToExternal(
19111915

19121916
if (src == NULL) {
19131917
srcLen = 0;
1918+
src = ""; /* Avoid ABSAN warnings about ops on NULL pointers */
19141919
} else if (srcLen < 0) {
19151920
srcLen = strlen(src);
19161921
}
@@ -2033,6 +2038,7 @@ Tcl_UtfToExternalEx(
20332038

20342039
if (src == NULL) {
20352040
srcLen = 0;
2041+
src = ""; /* Avoid ABSAN warnings about ops on NULL pointers */
20362042
} else if (srcLen < 0) {
20372043
srcLen = strlen(src); /* strlen works for TUTF-8 */
20382044
}

0 commit comments

Comments
 (0)