Files
codeql/python/ql/lib/semmle/python/frameworks
Taus eaef783f4b Python: Add partial model for copy.replace
Extends our modelling to partially cover the behaviour of
`copy.replace`. In particular, we model this in two ways:

Firstly, we extend the existing Models-as-Data row for `copy` and
`deepcopy` to also cover `replace`. This means that we treat the result
of `replace` as containing all of the fields of the original object.
This is somewhat _more_ than we want, as strictly speaking the fields
that are overwritten should _not_ propagate flow through the `replace`
call, but currently we don't have a good way of modelling this blocking
of flow.

Secondly, we add a flow summary that adds flow from named arguments of
the `replace` call to the corresponding fields on the base object. This
ensures that we at least have the new flow arising from the `replace`
call.

Note that the flow summary adds this flow for _all_ named arguments of
_all_ `replace` calls throughout the codebase. However, since any
particular `replace` call will only populate a subset of these (the
subset consisting of exactly those named arguments that are in that
particular call), this does not cause any unwanted crosstalk between
different `replace` calls.§
2024-10-15 12:14:19 +00:00
..
2023-12-08 11:27:52 +01:00
2023-03-22 15:51:47 +01:00
2023-09-29 11:32:51 +02:00
2021-10-08 11:55:54 +02:00
2024-09-13 00:21:33 -07:00
2024-05-15 15:08:27 +02:00
2023-12-08 11:27:51 +01:00
2023-12-08 11:27:51 +01:00
2023-09-25 10:35:18 +02:00
2024-05-10 08:32:45 +02:00
2022-09-09 10:34:14 +02:00
2022-09-09 10:34:14 +02:00
2022-09-09 10:34:14 +02:00
2023-12-08 11:27:51 +01:00
2023-12-08 11:27:51 +01:00
2022-10-10 13:49:26 +02:00
2022-03-07 18:59:49 +00:00
2023-09-25 10:24:53 +02:00
2024-05-27 09:48:10 +00:00
2022-10-13 18:08:47 +02:00
2024-05-29 15:42:29 +02:00
2023-12-08 11:27:52 +01:00
2024-05-10 08:32:45 +02:00
2024-01-29 14:30:20 +01:00
2023-12-08 11:27:51 +01:00
2023-12-08 11:27:51 +01:00
2022-10-13 12:43:47 +02:00
v1
2023-10-08 21:24:54 +02:00
2024-09-13 00:21:33 -07:00
2024-07-31 13:22:27 +02:00
2021-11-02 11:57:15 +01:00
2024-04-24 14:05:40 +01:00