Skip to content

Commit 3e9475b

Browse files
GiteaBotKN4CK3R
andauthored
Prevent newline errors with Debian packages (#26332) (#26342)
Backport #26332 by @KN4CK3R Fixes #26313 Co-authored-by: KN4CK3R <[email protected]>
1 parent 9be9042 commit 3e9475b

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

modules/packages/debian/metadata.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,19 +172,10 @@ func ParseControlFile(r io.Reader) (*Package, error) {
172172
value := strings.TrimSpace(parts[1])
173173
switch key {
174174
case "Package":
175-
if !namePattern.MatchString(value) {
176-
return nil, ErrInvalidName
177-
}
178175
p.Name = value
179176
case "Version":
180-
if !versionPattern.MatchString(value) {
181-
return nil, ErrInvalidVersion
182-
}
183177
p.Version = value
184178
case "Architecture":
185-
if value == "" {
186-
return nil, ErrInvalidArchitecture
187-
}
188179
p.Architecture = value
189180
case "Maintainer":
190181
a, err := mail.ParseAddress(value)
@@ -208,13 +199,23 @@ func ParseControlFile(r io.Reader) (*Package, error) {
208199
return nil, err
209200
}
210201

202+
if !namePattern.MatchString(p.Name) {
203+
return nil, ErrInvalidName
204+
}
205+
if !versionPattern.MatchString(p.Version) {
206+
return nil, ErrInvalidVersion
207+
}
208+
if p.Architecture == "" {
209+
return nil, ErrInvalidArchitecture
210+
}
211+
211212
dependencies := strings.Split(depends.String(), ",")
212213
for i := range dependencies {
213214
dependencies[i] = strings.TrimSpace(dependencies[i])
214215
}
215216
p.Metadata.Dependencies = dependencies
216217

217-
p.Control = control.String()
218+
p.Control = strings.TrimSpace(control.String())
218219

219220
return p, nil
220221
}

services/packages/debian/repository.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
212212
}
213213
addSeparator = true
214214

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

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

0 commit comments

Comments
 (0)