-
Notifications
You must be signed in to change notification settings - Fork 416
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(asm): iast discover customer code to patch (#5420)
IAST: discover if module is customer code or stdlib, third-party, etc in order to avoid patching the latter. Also: Fixes a problem with module docstrings to find aspect import position ## Checklist - [x] Change(s) are motivated and described in the PR description. - [x] Testing strategy is described if automated tests are not included in the PR. - [x] Risk is outlined (performance impact, potential for breakage, maintainability, etc). - [x] Change is maintainable (easy to change, telemetry, documentation). - [x] [Library release note guidelines](https://ddtrace.readthedocs.io/en/stable/contributing.html#Release-Note-Guidelines) are followed. - [x] Documentation is included (in-code, generated user docs, [public corp docs](https://github.com/DataDog/documentation/)). - [x] Author is aware of the performance implications of this PR as reported in the benchmarks PR comment. ## Reviewer Checklist - [x] Title is accurate. - [x] No unnecessary changes are introduced. - [x] Description motivates each change. - [x] Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes unless absolutely necessary. - [x] Testing strategy adequately addresses listed risk(s). - [x] Change is maintainable (easy to change, telemetry, documentation). - [x] Release note makes sense to a user of the library. - [x] Reviewer is aware of, and discussed the performance implications of this PR as reported in the benchmarks PR comment. --------- Co-authored-by: Juanjo Alvarez Martinez <juanjo.alvarezmartinez@datadoghq.com>
- Loading branch information
Showing
14 changed files
with
1,418 additions
and
23 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/usr/bin/env python3 | ||
|
||
from sys import version_info | ||
|
||
|
||
if version_info < (3, 7, 0): | ||
from .module_names_py36 import STDLIB_MODULE_NAMES | ||
elif version_info < (3, 8, 0): | ||
from .module_names_py37 import STDLIB_MODULE_NAMES | ||
elif version_info < (3, 9, 0): | ||
from .module_names_py38 import STDLIB_MODULE_NAMES | ||
elif version_info < (3, 10, 0): | ||
from .module_names_py39 import STDLIB_MODULE_NAMES | ||
elif version_info < (3, 11, 0): | ||
from .module_names_py310 import STDLIB_MODULE_NAMES | ||
else: | ||
from .module_names_py311 import STDLIB_MODULE_NAMES | ||
|
||
|
||
def _stdlib_for_python_version(): # type: () -> set | ||
return STDLIB_MODULE_NAMES |
215 changes: 215 additions & 0 deletions
215
ddtrace/appsec/_python_info/stdlib/module_names_py310.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,215 @@ | ||
STDLIB_MODULE_NAMES = { | ||
"_ast", | ||
"_thread", | ||
"abc", | ||
"aifc", | ||
"argparse", | ||
"array", | ||
"ast", | ||
"asynchat", | ||
"asyncio", | ||
"asyncore", | ||
"atexit", | ||
"audioop", | ||
"base64", | ||
"bdb", | ||
"binascii", | ||
"binhex", | ||
"bisect", | ||
"builtins", | ||
"bz2", | ||
"cProfile", | ||
"calendar", | ||
"cgi", | ||
"cgitb", | ||
"chunk", | ||
"cmath", | ||
"cmd", | ||
"code", | ||
"codecs", | ||
"codeop", | ||
"collections", | ||
"colorsys", | ||
"compileall", | ||
"concurrent", | ||
"configparser", | ||
"contextlib", | ||
"contextvars", | ||
"copy", | ||
"copyreg", | ||
"crypt", | ||
"csv", | ||
"ctypes", | ||
"curses", | ||
"dataclasses", | ||
"datetime", | ||
"dbm", | ||
"decimal", | ||
"difflib", | ||
"dis", | ||
"distutils", | ||
"doctest", | ||
"email", | ||
"encodings", | ||
"ensurepip", | ||
"enum", | ||
"errno", | ||
"faulthandler", | ||
"fcntl", | ||
"filecmp", | ||
"fileinput", | ||
"fnmatch", | ||
"fractions", | ||
"ftplib", | ||
"functools", | ||
"gc", | ||
"getopt", | ||
"getpass", | ||
"gettext", | ||
"glob", | ||
"graphlib", | ||
"grp", | ||
"gzip", | ||
"hashlib", | ||
"heapq", | ||
"hmac", | ||
"html", | ||
"http", | ||
"idlelib", | ||
"imaplib", | ||
"imghdr", | ||
"imp", | ||
"importlib", | ||
"inspect", | ||
"io", | ||
"ipaddress", | ||
"itertools", | ||
"json", | ||
"keyword", | ||
"lib2to3", | ||
"linecache", | ||
"locale", | ||
"logging", | ||
"lzma", | ||
"mailbox", | ||
"mailcap", | ||
"marshal", | ||
"math", | ||
"mimetypes", | ||
"mmap", | ||
"modulefinder", | ||
"msilib", | ||
"msvcrt", | ||
"multiprocessing", | ||
"netrc", | ||
"nis", | ||
"nntplib", | ||
"ntpath", | ||
"numbers", | ||
"operator", | ||
"optparse", | ||
"os", | ||
"ossaudiodev", | ||
"pathlib", | ||
"pdb", | ||
"pickle", | ||
"pickletools", | ||
"pipes", | ||
"pkgutil", | ||
"platform", | ||
"plistlib", | ||
"poplib", | ||
"posix", | ||
"posixpath", | ||
"pprint", | ||
"profile", | ||
"pstats", | ||
"pty", | ||
"pwd", | ||
"py_compile", | ||
"pyclbr", | ||
"pydoc", | ||
"queue", | ||
"quopri", | ||
"random", | ||
"re", | ||
"readline", | ||
"reprlib", | ||
"resource", | ||
"rlcompleter", | ||
"runpy", | ||
"sched", | ||
"secrets", | ||
"select", | ||
"selectors", | ||
"shelve", | ||
"shlex", | ||
"shutil", | ||
"signal", | ||
"site", | ||
"smtpd", | ||
"smtplib", | ||
"sndhdr", | ||
"socket", | ||
"socketserver", | ||
"spwd", | ||
"sqlite3", | ||
"sre", | ||
"sre_compile", | ||
"sre_constants", | ||
"sre_parse", | ||
"ssl", | ||
"stat", | ||
"statistics", | ||
"string", | ||
"stringprep", | ||
"struct", | ||
"subprocess", | ||
"sunau", | ||
"symtable", | ||
"sys", | ||
"sysconfig", | ||
"syslog", | ||
"tabnanny", | ||
"tarfile", | ||
"telnetlib", | ||
"tempfile", | ||
"termios", | ||
"test", | ||
"textwrap", | ||
"threading", | ||
"time", | ||
"timeit", | ||
"tkinter", | ||
"token", | ||
"tokenize", | ||
"trace", | ||
"traceback", | ||
"tracemalloc", | ||
"tty", | ||
"turtle", | ||
"turtledemo", | ||
"types", | ||
"typing", | ||
"unicodedata", | ||
"unittest", | ||
"urllib", | ||
"uu", | ||
"uuid", | ||
"venv", | ||
"warnings", | ||
"wave", | ||
"weakref", | ||
"webbrowser", | ||
"winreg", | ||
"winsound", | ||
"wsgiref", | ||
"xdrlib", | ||
"xml", | ||
"xmlrpc", | ||
"zipapp", | ||
"zipfile", | ||
"zipimport", | ||
"zlib", | ||
"zoneinfo", | ||
} |
Oops, something went wrong.