Skip to content

Commit 9bd4514

Browse files
committed
frontend: Ensure cookie ID is always 16 hexadecimal characters
At a glance, the GenId function looks like it can only return a 16-character hexadecimal string with all characters being [0-9A-F]. However, it seems that it can rarely return a 16-character string that has one or two space characters at the beginning due to the value of id, from which the final string is derived, being too low (lower than 1152921504606846976 or 0x1000000000000000) and the printf format specifier having a width of 16. This results in a string of less than 16 characters that is padded with blank spaces. The end result is a cookie directory that has leading spaces in its name, which can cause various issues, such as breaking syncing on OneDrive. If we set the format specifier to pad with zeroes instead of spaces, the resulting hexadecimal value is always 16 characters long without spaces.
1 parent a3884d1 commit 9bd4514

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

frontend/widgets/OBSBasic_Browser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ static std::string GenId()
169169
uint64_t id = dist(e2);
170170

171171
char id_str[20];
172-
snprintf(id_str, sizeof(id_str), "%16llX", (unsigned long long)id);
172+
snprintf(id_str, sizeof(id_str), "%016llX", (unsigned long long)id);
173173
return std::string(id_str);
174174
}
175175

0 commit comments

Comments
 (0)