mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cgo: Only allow numeric / string / character type constants for references
to #defined things. Fixes #520. R=rsc, rsaarelm CC=golang-dev https://golang.org/cl/186138
This commit is contained in:
parent
c6336155f1
commit
e8afb6d87f
1 changed files with 7 additions and 1 deletions
|
|
@ -48,7 +48,13 @@ func (p *Prog) loadDebugInfo() {
|
|||
val = strings.TrimSpace(line[tabIndex:])
|
||||
}
|
||||
|
||||
defines[key] = val
|
||||
// Only allow string, character, and numeric constants. Ignoring #defines for
|
||||
// symbols allows those symbols to be referenced in Go, as they will be
|
||||
// translated by gcc later.
|
||||
_, err := strconv.Atoi(string(val[0]))
|
||||
if err == nil || val[0] == '\'' || val[0] == '"' {
|
||||
defines[key] = val
|
||||
}
|
||||
}
|
||||
|
||||
// Construct a slice of unique names from p.Crefs.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue