123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- @sizet@
- size_t p;
- identifier func =~ "^(sprintf|printf|SCLog.*)$";
- identifier funcn =~ "^.*nprintf$";
- position p1;
- typedef uint16_t;
- typedef uint32_t;
- typedef uint64_t;
- expression E1, E2;
- @@
- (
- func(..., p, ...)@p1;
- |
- func(..., (int) p, ...)@p1;
- |
- func(..., (unsigned int) p, ...)@p1;
- |
- func(..., (uint16_t) p, ...)@p1;
- |
- func(..., (uint32_t) p, ...)@p1;
- |
- func(..., (uint64_t) p, ...)@p1;
- |
- funcn(E1, E2,..., p, ...)@p1;
- |
- funcn(E1, E2,..., (int) p, ...)@p1;
- |
- funcn(E1, E2,..., (unsigned int) p, ...)@p1;
- |
- funcn(E1, E2,..., (uint16_t) p, ...)@p1;
- |
- funcn(E1, E2,..., (uint32_t) p, ...)@p1;
- |
- funcn(E1, E2,..., (uint64_t) p, ...)@p1;
- )
- @ script:python @
- p1 << sizet.p1;
- @@
- print("Invalid printf with size_t (not casted to uintmax_t) at %s:%s" % (p1[0].file, p1[0].line))
- import sys
- sys.exit(1)
|