Skip to content

Commit addeefe

Browse files
mimi89999emersion
authored andcommitted
dkim: reject tag-lists with duplicate tag names
Closes emersion#69
1 parent 999f438 commit addeefe

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

dkim/header.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,12 @@ func parseHeaderParams(s string) (map[string]string, error) {
8383
return params, errors.New("dkim: malformed header params")
8484
}
8585

86-
params[strings.TrimSpace(key)] = strings.TrimSpace(value)
86+
trimmedKey := strings.TrimSpace(key)
87+
_, present := params[trimmedKey]
88+
if present {
89+
return params, errors.New("dkim: duplicate tag name")
90+
}
91+
params[trimmedKey] = strings.TrimSpace(value)
8792
}
8893
return params, nil
8994
}

dkim/query.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func queryDNSTXT(domain, selector string, txtLookup txtLookupFunc) (*queryResult
100100
func parsePublicKey(s string) (*queryResult, error) {
101101
params, err := parseHeaderParams(s)
102102
if err != nil {
103-
return nil, permFailError("key syntax error: " + err.Error())
103+
return nil, permFailError("key record error: " + err.Error())
104104
}
105105

106106
res := new(queryResult)

0 commit comments

Comments
 (0)