pki: fix out-of-bound error when a symlink directory doesn't contain a serial

This commit is contained in:
nemunaire 2018-12-02 02:32:33 +01:00
parent 024d34f0e4
commit 11e0b46034

View file

@ -6,10 +6,13 @@ import (
"os" "os"
"path" "path"
"strconv" "strconv"
"strings"
) )
const SymlinkPrefix = "_AUTH_ID_"
func GetCertificateAssociation(serial uint64) string { func GetCertificateAssociation(serial uint64) string {
return fmt.Sprintf("_AUTH_ID_%0X", serial) return fmt.Sprintf(SymlinkPrefix + "%0X", serial)
} }
func GetAssociations(dirname string) (assocs []string, err error) { func GetAssociations(dirname string) (assocs []string, err error) {
@ -35,7 +38,7 @@ func GetTeamSerials(dirname string, id_team int64) (serials []uint64, err error)
} else { } else {
for _, assoc := range assocs { for _, assoc := range assocs {
var tid string var tid string
if tid, err = os.Readlink(path.Join(dirname, assoc)); err == nil && tid == str_tid { if tid, err = os.Readlink(path.Join(dirname, assoc)); err == nil && tid == str_tid && strings.HasPrefix(assoc, SymlinkPrefix) {
if serial, err := strconv.ParseUint(assoc[9:], 16, 64); err == nil { if serial, err := strconv.ParseUint(assoc[9:], 16, 64); err == nil {
serials = append(serials, serial) serials = append(serials, serial)
} }