pki: fix out-of-bound error when a symlink directory doesn't contain a serial
This commit is contained in:
parent
024d34f0e4
commit
11e0b46034
1 changed files with 5 additions and 2 deletions
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue