diff --git a/ql/examples/snippets/deferinloop.ql b/ql/examples/snippets/deferinloop.ql new file mode 100644 index 00000000000..85f52236bb0 --- /dev/null +++ b/ql/examples/snippets/deferinloop.ql @@ -0,0 +1,14 @@ +/** + * @name Defer in loop + * @description A deferred statement in a loop will not execute until the end of the function. + * This can lead to unintentionally holding resources open like file handles or database transactions. + * @id go/examples/deferinloop + * @tags defer + * nesting + */ + +import go + +from LoopStmt loop, DeferStmt defer +where loop.getBody().getAChildStmt+() = defer +select defer, "This defer statement is in a $@.", loop, "loop"