Browse Source

Prevent newline errors with Debian packages (#26332)

Fixes #26313
tags/v1.21.0-rc0
KN4CK3R 10 months ago
parent
commit
2d3924d0e7
No account linked to committer's email address
2 changed files with 12 additions and 11 deletions
  1. 11
    10
      modules/packages/debian/metadata.go
  2. 1
    1
      services/packages/debian/repository.go

+ 11
- 10
modules/packages/debian/metadata.go View File

value := strings.TrimSpace(parts[1]) value := strings.TrimSpace(parts[1])
switch key { switch key {
case "Package": case "Package":
if !namePattern.MatchString(value) {
return nil, ErrInvalidName
}
p.Name = value p.Name = value
case "Version": case "Version":
if !versionPattern.MatchString(value) {
return nil, ErrInvalidVersion
}
p.Version = value p.Version = value
case "Architecture": case "Architecture":
if value == "" {
return nil, ErrInvalidArchitecture
}
p.Architecture = value p.Architecture = value
case "Maintainer": case "Maintainer":
a, err := mail.ParseAddress(value) a, err := mail.ParseAddress(value)
return nil, err return nil, err
} }


if !namePattern.MatchString(p.Name) {
return nil, ErrInvalidName
}
if !versionPattern.MatchString(p.Version) {
return nil, ErrInvalidVersion
}
if p.Architecture == "" {
return nil, ErrInvalidArchitecture
}

dependencies := strings.Split(depends.String(), ",") dependencies := strings.Split(depends.String(), ",")
for i := range dependencies { for i := range dependencies {
dependencies[i] = strings.TrimSpace(dependencies[i]) dependencies[i] = strings.TrimSpace(dependencies[i])
} }
p.Metadata.Dependencies = dependencies p.Metadata.Dependencies = dependencies


p.Control = control.String()
p.Control = strings.TrimSpace(control.String())


return p, nil return p, nil
} }

+ 1
- 1
services/packages/debian/repository.go View File

} }
addSeparator = true addSeparator = true


fmt.Fprint(w, pfd.Properties.GetByName(debian_module.PropertyControl))
fmt.Fprintf(w, "%s\n", strings.TrimSpace(pfd.Properties.GetByName(debian_module.PropertyControl)))


fmt.Fprintf(w, "Filename: pool/%s/%s/%s\n", distribution, component, pfd.File.Name) fmt.Fprintf(w, "Filename: pool/%s/%s/%s\n", distribution, component, pfd.File.Name)
fmt.Fprintf(w, "Size: %d\n", pfd.Blob.Size) fmt.Fprintf(w, "Size: %d\n", pfd.Blob.Size)

Loading…
Cancel
Save