Splint - Secure Programming Lint
[email protected]
Manual Contents - Other Formats Section: 1  2  3  4  5  6  7  8  9  10  11  12  13  14  A  B  C  D  E     Sponsors - Credits

Index


.splintrc, 73

/*@*/, 36

@, 12, 95, 97

abstract types, 15, 21, 22, 24, 31, 32, 33, 39, 58, 60, 61, 66, 78, 80, 87, 88, 99, 104, 108

access control, 22

aliasing, 9, 27, 31, 82, 85, 99

alternate types, 48, 75, 98

annotations, 9, 10, 13, 26, 27, 42, 97, 98

abstract, 21, 30, 80, 98

access, 23, 99

allocates, 39

alt, 57, 92

checked, 37, 67, 85, 99

checkedstrict, 37, 67, 84, 85, 99

checkmod, 37, 85, 99

concrete, 80, 98

constant, 86

defines, 39

dependent, 27, 42, 81, 99

end, 97

exits, 43, 100

exposed, 33, 81, 100

external, 65, 101

fallthrough, 46, 101, 102

falseexit, 43

falsenull, 14, 100

falsewhennull, 14

fileSystem, 36

i, 97

i<n>, 95, 97

ignore, 97

immutable, 23, 98

implicit, 29

in, 17, 100

innerbreak, 46, 91, 101

innercontinue, 47, 91, 101

integraltype, 20, 102

internalState, 36, 57

iter, 58, 59, 86, 89

keep, 28, 81, 99

killed, 38, 100

killref, 99

loopbreak, 46, 47, 91, 101

misscase, 46

mutable, 23, 98

neverexit, 101

noaccess, 23, 99

notfunction, 58, 68, 86, 102

nothing, 36

notnull, 15, 100

notreached, 101, 102

null, 14, 27, 55, 100

nullwhentrue, 14

observer, 33, 81, 83, 99

only, 26, 31, 38, 40, 42, 81, 82, 99

out, 17, 100

owned, 27, 42, 81, 99

partial, 18, 100

printflike, 101, 102

refcounted, 30, 98

refs, 30

reldef, 18, 100

releases, 40

relnull, 15, 100

returned, 31, 99

scanflike, 101, 102

sef, 56, 87, 101

sets, 39

shared, 28, 42, 81, 99

signedintegraltype, 20, 102

switchbreak, 46, 91, 101

t, 97

t<n>, 97

temp, 27, 81, 82, 83, 99

trueexit, 43

truenull, 14, 100

unchecked, 37, 67, 84, 85, 99

undef, 38, 100

unique, 31, 99

unsignedintegraltype, 20, 102

unused, 65, 101, 102

uses, 39

warnuse, 101

yield, 58

ARGSUSED, 102

assert, 43, 67

bool, 20, 43, 67, 77, 79, 92, 100

break statements, 46, 91, 101

char, 79

characters, 19

CLU, 25

comparisons, 78

complete logic, 47

complete programs, 65, 92, 105

continue statements, 46, 101

control comments, 13

control flow, 43, 100

control nesting depth, 94

control structures, 90

czechmacros, 61

declarations, 38, 85, 101

distinct names, 63, 90

enumerators, 19, 94

environment variables

LARCH_PATH, 73

LCLIMPORTDIR, 73

errno, 67

evaluation order, 90

exit, 93

exit status, 75

expected errors, 75

exported declarations, 65

exports, 93

exposure, 83, 99

external names, 65, 90

fall through cases, 9, 46, 101, 102

FALLTHROUGH, 95, 102

fileSystem, 36, 84

flag name abbreviations, 95

flags, 10, 11, 12

abstract, 79

accessczech, 60, 61, 80, 87

accessczechoslovak, 80, 88

accessfile, 23, 80

accessfunction, 23

accessmodule, 23, 80

accesssall, 80

accessslovak, 61, 80, 87

aliasunique, 82

allblock, 91

allempty, 91

allglobs, 84

allimponly, 29

allmacros, 57, 68, 86

ansilib, 74

ansilimits, 94

ansireserved, 63, 89

ansireservedinternal, 63, 89

ansistrict, 66

array parameters, 78

assignexpose, 32, 83

bitwisesigned, 77

bool, 77

boolcompare, 78

boolfalse, 21, 77

boolint, 13, 79

booltrue, 21, 77

booltype, 20, 77

branchstate, 80

casebreak, 46, 91

castexpose, 32, 83

castfcnptr, 78

charindex, 19, 79

charint, 13, 19, 79

charintliteral, 79

checkedglobalias, 85

checkmodglobalias, 85

checks, 36, 76

checkstrictglobalias, 85

checkstrictglobs, 37, 84

codeimponly, 82

commentchar, 12, 95, 97

compdef, 65, 77

compdestroy, 81

compmempass, 82

constmacros, 57, 58, 86

constprefix, 62, 89

constprefixexclude, 89

constuse, 65, 92

continuecomment, 95

controlnestdepth, 94

cppnames, 90

czech, 60, 87

czechconstants, 60

czechconsts, 87

czechfcns, 60, 87

czechmacros, 87

czechoslovak, 88

czechoslovakconstants, 61

czechoslovakconsts, 88

czechoslovakfcns, 61, 88

czechoslovakmacros, 61, 88

czechoslovaktype, 61

czechoslovaktypes, 88

czechoslovakvars, 61, 88

czechtypes, 61, 87

czechvars, 60, 87

D<initializer>, 73

declundef, 92, 93

deepbreak, 47, 91

deparrays, 80

dependenttrans, 81

distinctexternalnames, 63, 90

distinctinternalnames, 90

dump, 67, 73

duplicatequals, 95

elseifcomplete, 47, 90

empty, 86

enumindex, 19, 79

enumint, 19, 79

enummemuse, 65, 92

enumprefix, 62, 88

enumprefixexclude, 88

evalorder, 44, 90

evalorderuncon, 44, 45, 90

exitarg, 93

expect, 75

exportany, 105

exportconst, 105

exportfcn, 105, 106

exportheader, 65, 93

exportheadervar, 93

exportiter, 106

exportlocal, 93

exportmacro, 105, 106

exporttype, 106

exportvar, 105, 106

exposetrans, 81

externalnamecaseinsensitive, 63, 90

externalnamelen, 90

externalprefix, 62, 89

externalprefixexclude, 89

f <file>, 12, 73

fcnmacros, 57, 58, 86

fcnuse, 65, 92

fielduse, 65, 92

filestaticprefix, 62, 88, 89

filestaticprefixexclude, 89

fixedformalarray, 78

floatdouble, 79

forblock, 91

forcehints, 12, 75

forempty, 91

formalarray, 78

formatcode, 78

formattype, 78

forwarddecl, 79

freshtrans, 81

globalias, 85

globalprefix, 89

globalprefixexclude, 89

globimponly, 29, 82

globnoglobs, 37, 84

globs, 84

globsimpmodsnothing, 85, 96

globstate, 84

globuse, 84

globvarprefix, 62

globvarprefixexclude, 62

gnuextensions, 95

hasyield, 87

help, 72

hints, 75

i <file>, 104

I<directory>, 73

ifblock, 47, 91

ifempty, 91

ignorequals, 79

ignoresigns, 19, 79

immediatetrans, 81

impabstract, 22, 80

impcheckedglobs, 85

impcheckedspecglobs, 105

impcheckedstatics, 85

impcheckedstrictglobs, 85

impcheckedstrictspecglobs, 105

impcheckedstrictstatics, 38, 85

impcheckmodglobs, 85

impcheckmodinternals, 85

impcheckmodspecglobs, 105

impcheckmodstatics, 85

impouts, 17, 18, 76

imptype, 79

includenest, 94

incompletetype, 79

incondefs, 85

incondefslib, 85

infloops, 90

infloopsuncon, 45, 90

internalglobs, 84

internalglobsnoglobs, 84

internalnamecaseinsensitive, 64, 90

internalnamelen, 90

internalnamelength, 64

internalnamelookalike, 64, 90

iterprefix, 62, 89

iterprefixexclude, 89

keeptrans, 81

kepttrans, 81

larchpath, 73

lclexpect, 105

lclimportdir, 73

lcs, 104

lh, 104

libmacros, 86

limit, 74, 75

linelen, 12, 75

lintcomments, 95, 103

load, 67, 73

localprefix, 89

localprefixexclude, 89

longintegral, 20, 79

longsignedintegral, 20, 79

longunsignedintegral, 20, 79

longunsignedunsignedintegral, 20, 79

looploopbreak, 46, 91

looploopcontinue, 47, 91

loopswitchbreak, 46, 91

macroassign, 56, 86

macroconstdecl, 57, 86

macrodecl, 86

macrofcndecl, 57, 86

macromatchname, 86

macroparams, 56, 86

macroparens, 56, 86

macroredef, 86

macrostmt, 56, 86

macrounrecog, 86

macrovarprefix, 61, 62, 88

macrovarprefixexclude, 62, 88

maintype, 78

matchanyintegral, 20, 79

matchfields, 85

mayaliasunique, 82

memimp, 82

memtrans, 81

misscase, 91

modfilesys, 84

modfilesystem, 36

modglobs, 84

modglobsnomods, 37, 83, 84

modglobsunchecked, 84

modifies, 13, 83

modinternalstrict, 84

modnomods, 36, 83

modobserver, 83

modobserverstrict, 83

modsimpnoglobs, 85

modstrictglobsnomods, 83, 84

moduncon, 36, 83

modunconnomods, 84

mustdefine, 17, 77

mustfree, 81

mustfreefresh, 11

mustmod, 36, 83

mustnotalias, 83

mutrep, 24, 80

namechecks, 87

needspec, 105

nestcomment, 95

neverinclude, 68, 94

newreftrans, 81

nextlinemacros, 87

noaccess, 95

nocomments, 95

noeffect, 47, 48, 92

noeffectuncon, 47, 48, 92

nof, 12, 73

nolib, 67, 74

noparams, 93

noret, 92

null, 76

numenummembers, 94

numliteral, 79

numstructfields, 94

observertrans, 81

oldstyle, 93

onlytrans, 81

onlyunqglobaltrans, 82

overload, 85

ownedtrans, 81

paramimptemp, 29, 82

paramuse, 65, 92, 102

parenfileformat, 12, 75

partial, 65, 93

passunknown, 82

posixlib, 66, 74

posixstrictlib, 66, 74

predassign, 20, 77

predbool, 77

predboolint, 77

predboolothers, 20, 77

predboolptr, 20, 21, 77

protoparammatch, 63, 89

protoparamname, 62, 89

protoparamprefix, 62, 89

protoparamprefixexclude, 89

ptrarith, 77

ptrcompare, 78

ptrnegate, 77

quiet, 74

readonlystrings, 33, 83

readonlytrans, 83

realcompare, 78

redecl, 38, 93

redef, 93

refcounttrans, 81

relaxquals, 19, 79

relaxtypes, 79

repeatunrecog, 93

repexpose, 83

retalias, 31, 83

retexpose, 32, 83

retimponly, 29, 82

retval, 92

retvalbool, 48, 92

retvalint, 48, 92

retvalother, 92

retvalothers, 48

S<directory>, 73

sefparams, 87

sefuncon, 57, 87

shadow, 89

sharedtrans, 81

shiftsigned, 77

showallconjs, 75

showalluses, 74

showcol, 12

showcolumn, 75

showfunc, 12, 13, 75

showscan, 74

showsummary, 74

singleinclude, 68, 94

sizeofformalarray, 78

sizeoftype, 78

skipansiheaders, 68, 94

skipposixheaders, 68, 94

skipsysheaders, 68, 94

slovak, 61, 87

slovakconstants, 61

slovakconsts, 87, 88

slovakfcns, 61, 87, 88

slovakmacros, 61, 87, 88

slovaktypes, 87, 88

slovakvars, 61, 87, 88

specglobimponly, 105

specimponly, 105

specmacros, 105

specretimponly, 105

specstructimponly, 105

specundecl, 105

specundef, 105

stackref, 82

standard, 76

staticinittranc, 82

statictrans, 81

stats, 74

strict, 76

strictbranchstate, 80

strictdestroy, 81

strictlib, 74

strictops, 78

strictusereleased, 80

stringliterallen, 94

structimponly, 29, 82

supcounts, 95, 97

switchloopbreak, 46, 91

switchswitchbreak, 46, 91

syntax, 95

sysdirerrors, 73, 94

sysdirexpandmacros, 94

sysdirs, 68, 73, 94

systemunrecog, 93

tagprefix, 62, 88

tagprefixexclude, 88

temptrans, 81

timedist, 74

tmpcomments, 97

tmpdir, 73

topuse, 65, 92

trytorecover, 95

type, 77

typeprefix, 62, 89

typeprefixexclude, 62, 89

typeuse, 65, 92

U<initializer>, 73

uncheckedglobalias, 85

uncheckedmacroprefix, 62, 89

uncheckedmacroprefixexclude, 89

uniondef, 77

unixlib, 66, 74

unixstrictlib, 66, 74

unqualifiedinititrans, 82

unqualifiedtrans, 82

unreachable, 92

unrecog, 93

unrecogcomments, 95

unusedspecial, 92

usedef, 17, 76

usereleased, 80

usestderr, 74

usevarargs, 93

varuse, 65, 92

voidabstract, 78

warnflags, 12, 72

warnlintcomments, 95, 103

warnmissingglobs, 84

warnmissingglobsnoglobs, 84

warnposixheaders, 94

weak, 11, 76

whichlib, 74

whileblock, 91

whileempty, 91

zeroptr, 79

format codes, 78

free, 26, 27, 66, 81

function interfaces, 35, 83

gcc extensions, 95

global variables, 17, 32, 37, 44, 62, 84, 85, 98, 99, 105

globals list, 37, 44, 45

GNU extensions, 95

header file inclusion, 94

header files, 65, 68

help, 72

hints, 12, 75

if bodies, 47

ignored return values, 9, 48, 92

immutable type, 23

implicit annotations, 37, 82, 85, 105

include file nesting, 94

infinite loops, 9, 37, 45

information hiding, 9, 19, 21, 99

initialization files, 12, 73

.splintrc, 12, 73

lclinit.lci, 105

initializers, 82

internalState, 36, 57, 84

isalpha, 67

iscntrl, 67

isdigit, 67

isgraph, 67

islower, 67

isprint, 67

ispunct, 67

isspace, 67

isupper, 67

isxdigit, 67

iterators, 58, 86, 87, 98

Larch, 104

LARCH_PATH, 73, 105

LCL, 104

LCLIMPORTDIR, 73

lcs files, 104

lh files, 104

libraries, 66, 73, 85

line splitting, 12

lint comments, 102

loop bodies, 47

loopexec, 91

LSL, 104

macros, 55, 62, 86, 102, 105

main, 78

malloc, 26

McConnell, Steve, 21

memory leaks, 25, 81, 99

memory management, 9, 25, 30, 80

message format, 75

Microsoft VisualStudio, 12, 75

modes, 75

checks, 36, 76

standard, 76

strict, 76

weak, 11, 76

modification, 31, 32, 33, 35, 44, 56, 57, 83

modifies clause, 35, 39, 44, 45, 47, 57, 83, 84, 98

multiple definitions, 93

mutability, 23, 32

mutable type, 23

namespaces, 61, 88

naming convention, 23, 60, 87

Czech, 60, 63, 80, 87

Czechoslovak, 61, 80, 88

Slovak, 61, 63, 80, 87

naming restrictions, 63, 89

no effects, 47, 92

NOTREACHED, 95, 102

null, 66, 84

null dereferences, 14, 76, 100

null predicates, 100

numeric types, 19

output, 74

parse errors, 95

parsing, 95

partial programs, 65

path with no return, 92

pointers, 78

polymorphism, 57, 98

POSIX, 66, 94

predicates, 77

preprocessor, 73

primitive operations, 77

printf, 66, 78, 101

PRINTFLIKE, 95, 102

problematic control structures, 45

read-only storage, 32

reference counting, 30, 81

reserved names, 63, 89

return values, 48

security vulnerabilities, 9

sequence points, 44

Shakespeare, William, 25, 26

shared storage, 27

sharing, 31, 82

sharing semantics, 24

side effect free, 87

side effect free parameters, 56

side effects, 101

sizeof, 22, 78

special reward, 76

stack pointers, 25, 28

stack references, 28

standard error, 74

standard libraries, 66

standard library, 26

standard output, 74

static, 65

static variables, 37

stderr, 67

stdin, 67

stdout, 67

storage model, 25

strchr, 67

string literals, 33, 83, 94

strrchr, 67

structure fields, 94

suppressing warnings, 97

switch, 101

switch statements, 45, 46

syntactic comment, 95

syntax, 12

tolower, 67

toupper, 67

type, 9, 13, 21, 77, 78

type access, 99

type checking, 19

type equivalence, 78

types, 102

undefined, 44

undefined behavior, 31, 33, 36, 37, 44, 55, 90

undefined values, 9, 17, 38, 76, 84, 100

ungetc, 67

unreachable, 9

unreachable code, 92, 101, 102

unrecognized identifiers, 93

unused declarations, 9, 65, 92

use warnings, 101

use-before-definition, 9, 17, 38, 76, 91

van der Linden, Peter, 46, 63

varargs, 93

void, 48


 


Return to Contents

Splint Manual
[email protected]
1. Operation - 2. Null Dereferences - 3. Undefined Values - 4. Types - 5. Memory Management - 6. Sharing
7. Function Interfaces - 8. Control Flow - 9. Buffer Sizes - 10. Extensible Checking - 11. Macros
12. Naming Conventions - 13. Completeness - 14. Libraries and Header File Inclusion
Appendices: A. Availability - B. Flags - C. Annotations - D. Specifications - E. Annotated Bibliography - Index