eleanorenachazeljhj36 / codeql-uboot

https://lab.github.com/githubtraining/codeql-u-boot-challenge-(cc++)
MIT License
0 stars 0 forks source link

Step 7 - Relating two variables, continued #7

Closed github-learning-lab[bot] closed 2 years ago

github-learning-lab[bot] commented 2 years ago

Step 7: Relating two variables, continued

In step 5, you wrote a query that finds the definitions of macros named ntohs, ntohl and ntohll in the codebase. Now, we want to find all the invocations of these macros in the codebase.

This will be similar to what you did in step 6, where you created variables for functions and function calls, and restricted them to look for a particular function and its calls.

Note: A macro invocation is a place in the source code that calls a particular macro. This is comparable to how a function call is a place in the source code that calls a particular function.

github-learning-lab[bot] commented 2 years ago

:keyboard: Activity: Find all the invocations of ntoh* macros

This query will look like the previous one, but with macros instead of functions.

  1. Edit the file 7_macro_invocations.ql
  2. Use the auto-completion to find the class that represents macro invocations, and declare a variable that belongs to this class.
  3. Use auto-completion again on your macro invocation variable, to find the predicate that tells us the target macro being invoked.
  4. Combine this with your logic from step 5 to make sure the target is one of the ntoh* macros.
  5. As in the previous step, you can make your query more compact by omitting superfluous variable declarations.
  6. Once you're happy with the results, submit your solution.
github-learning-lab[bot] commented 2 years ago

Ooops! The query you submitted in 054258848411ca6f62fd7dcc2b2dda92e00d30b6 didn't find the right results. Please take a look at the comment and try again.

To submit a new iteration of your query, you just have to push a new commit to the same branch (main or the PR branch).

github-learning-lab[bot] commented 2 years ago

Congratulations, looks like the query you introduced in 4d70bef80d3fc20a1d2705737957468f5570582d finds the correct results!

If you created a pull request, merge it.

Let's continue to the next step.