On 9/23/2019 9:03 PM, Eric Wong wrote: > Assigning hashmap_entry.hash manually leaves hashmap_entry.next > uninitialized, which can be dangerous once the hashmap_entry is > inserted into a hashmap. Detect those assignments and use > hashmap_entry_init, instead. I appreciate this future-proofing! Thanks. > > Signed-off-by: Eric Wong <e@xxxxxxxxx> > --- > contrib/coccinelle/hashmap.cocci | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > create mode 100644 contrib/coccinelle/hashmap.cocci > > diff --git a/contrib/coccinelle/hashmap.cocci b/contrib/coccinelle/hashmap.cocci > new file mode 100644 > index 0000000000..d69e120ccf > --- /dev/null > +++ b/contrib/coccinelle/hashmap.cocci > @@ -0,0 +1,16 @@ > +@ hashmap_entry_init_usage @ > +expression E; > +struct hashmap_entry HME; > +@@ > +- HME.hash = E; > ++ hashmap_entry_init(&HME, E); > + > +@@ > +identifier f !~ "^hashmap_entry_init$"; > +expression E; > +struct hashmap_entry *HMEP; > +@@ > + f(...) {<... > +- HMEP->hash = E; > ++ hashmap_entry_init(HMEP, E); > + ...>} >