mirror of
https://github.com/mpv-player/mpv
synced 2024-12-25 16:33:02 +00:00
bstr: fix possible undefined behavior with length 0 strings
BSTR_P() passes the string length and start pointer to printf-like functions. If the lenfth is 0, the pointer can be NULL, but we're actually still not allowed to pass a NULL pointer in any case. This is mostly a technically, because nobody in their right mind would attempt to specifically break such cases. But it's still undefined behavior, and some libcs might be strict about this.
This commit is contained in:
parent
8144d142e4
commit
4a7c6aaedf
@ -207,7 +207,7 @@ static inline int bstr_eatstart0(struct bstr *s, const char *prefix)
|
||||
}
|
||||
|
||||
// create a pair (not single value!) for "%.*s" printf syntax
|
||||
#define BSTR_P(bstr) (int)((bstr).len), (bstr).start
|
||||
#define BSTR_P(bstr) (int)((bstr).len), ((bstr).start ? (char*)(bstr).start : "")
|
||||
|
||||
#define WHITESPACE " \f\n\r\t\v"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user