[lttng-dev] Bug in lttng-ust tool lttng-gen-tp which replaces all ".c" with ".h" in the path

Gunnar Strand Gunnar.Strand at ericsson.com
Mon Sep 18 09:47:28 UTC 2017


Hi,

It does not seem like anonymous bug reporting is supported, so I am 
submitting the report here instead.

I found the following bug in the tools/lttng-gen-tp tool in the 
lttng-ust component, which is present in the latest commit on master, 
d0f6cf574ef992620b09c183cb3a0ea771070ea5:

  66 class CFile:
...
  79     def write(self):
  80         outputFile = open(self.outputFilename,"w")
  81
  82         headerFilename = self.outputFilename.replace(".c",".h")

Line 82 replaces all occurrences of ".c" with ".h" which breaks 
compilation if the path to the source contains ".c" anywhere, eg.: 
/path/to/my.cigar/source/...

Only the last occurrence should be replaced, eg.:

if self.outputFilename.endswith(".c"):

     headerFilename = self.outputFilename[:-2] + ".h"

Or just the second line if the code can assume that the string has a 
".c" suffix.

BR

Gunnar



More information about the lttng-dev mailing list