summaryrefslogtreecommitdiffstats
path: root/services/packages/debian/repository.go
diff options
context:
space:
mode:
authorGiteabot <teabot@gitea.io>2023-12-12 23:35:32 +0800
committerGitHub <noreply@github.com>2023-12-12 23:35:32 +0800
commit97a0bf151a1fed2119b0ecb3c94f68462979c699 (patch)
treef4ad8157e20dc7d8ed096f282f7d62eb21c12b4c /services/packages/debian/repository.go
parent5e2bae7716bf1991ff5ac95788cf3acb2ae59f71 (diff)
downloadgitea-97a0bf151a1fed2119b0ecb3c94f68462979c699.tar.gz
gitea-97a0bf151a1fed2119b0ecb3c94f68462979c699.zip
Fix possible nil pointer access (#28428) (#28440)
Backport #28428 by @KN4CK3R There could be a nil pointer exception if the file is not found because that specific error is suppressed but not handled. Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Diffstat (limited to 'services/packages/debian/repository.go')
-rw-r--r--services/packages/debian/repository.go19
1 files changed, 7 insertions, 12 deletions
diff --git a/services/packages/debian/repository.go b/services/packages/debian/repository.go
index 373fa7abc9..b968ac2f81 100644
--- a/services/packages/debian/repository.go
+++ b/services/packages/debian/repository.go
@@ -110,10 +110,7 @@ func BuildAllRepositoryFiles(ctx context.Context, ownerID int64) error {
}
for _, pf := range pfs {
- if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypeFile, pf.ID); err != nil {
- return err
- }
- if err := packages_model.DeleteFileByID(ctx, pf.ID); err != nil {
+ if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
return err
}
}
@@ -182,12 +179,11 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
pf, err := packages_model.GetFileForVersionByName(ctx, repoVersion.ID, filename, key)
if err != nil && !errors.Is(err, util.ErrNotExist) {
return err
+ } else if pf == nil {
+ continue
}
- if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypeFile, pf.ID); err != nil {
- return err
- }
- if err := packages_model.DeleteFileByID(ctx, pf.ID); err != nil {
+ if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
return err
}
}
@@ -285,12 +281,11 @@ func buildReleaseFiles(ctx context.Context, ownerID int64, repoVersion *packages
pf, err := packages_model.GetFileForVersionByName(ctx, repoVersion.ID, filename, distribution)
if err != nil && !errors.Is(err, util.ErrNotExist) {
return err
+ } else if pf == nil {
+ continue
}
- if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypeFile, pf.ID); err != nil {
- return err
- }
- if err := packages_model.DeleteFileByID(ctx, pf.ID); err != nil {
+ if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
return err
}
}