summary refs log tree commit diff
path: root/synapse/util/stringutils.py
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2022-05-18 11:28:14 +0100
committerBrendan Abolivier <babolivier@matrix.org>2022-05-18 11:40:09 +0100
commitc22314c4e8a3e9637810d78508bfe15dcdfe50b6 (patch)
tree31e88c174dfa71ee2ae27d55ade7b481169afea2 /synapse/util/stringutils.py
parentversion tweak in changelog (diff)
downloadsynapse-c22314c4e8a3e9637810d78508bfe15dcdfe50b6.tar.xz
Discard null-containing strings before updating the user directory (#12762)
Diffstat (limited to 'synapse/util/stringutils.py')
-rw-r--r--synapse/util/stringutils.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/util/stringutils.py b/synapse/util/stringutils.py

index b26546aecd..27a363d7e5 100644 --- a/synapse/util/stringutils.py +++ b/synapse/util/stringutils.py
@@ -16,7 +16,7 @@ import itertools import re import secrets import string -from typing import Iterable, Optional, Tuple +from typing import Any, Iterable, Optional, Tuple from netaddr import valid_ipv6 @@ -247,3 +247,11 @@ def base62_encode(num: int, minwidth: int = 1) -> str: # pad to minimum width pad = "0" * (minwidth - len(res)) return pad + res + + +def non_null_str_or_none(val: Any) -> Optional[str]: + """Check that the arg is a string containing no null (U+0000) codepoints. + + If so, returns the given string unmodified; otherwise, returns None. + """ + return val if isinstance(val, str) and "\u0000" not in val else None