]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
import: check overflow 33893/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 1 Aug 2024 03:03:54 +0000 (12:03 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 1 Aug 2024 13:45:53 +0000 (22:45 +0900)
Fixes CID#1548022 and CID#1548075.

src/import/import-raw.c
src/import/import-tar.c

index ee9b297bfeb70d5e585cb9275321f2d9a6fd900f..78775b96d6798f154b2c65680a141c3d0e8866c5 100644 (file)
@@ -409,6 +409,11 @@ static int raw_import_process(RawImport *i) {
                 goto finish;
         }
 
+        if ((size_t) l > sizeof(i->buffer) - i->buffer_size) {
+                r = log_error_errno(SYNTHETIC_ERRNO(EBADMSG), "Read input file exceeded maximum size.");
+                goto finish;
+        }
+
         i->buffer_size += l;
 
         if (i->compress.type == IMPORT_COMPRESS_UNKNOWN) {
index 39df11b5ff6e94088ac40d761f1c07da93a23711..976c9182461f4caf5f66552127baac7f454acc06 100644 (file)
@@ -276,6 +276,11 @@ static int tar_import_process(TarImport *i) {
                 goto finish;
         }
 
+        if ((size_t) l > sizeof(i->buffer) - i->buffer_size) {
+                r = log_error_errno(SYNTHETIC_ERRNO(EBADMSG), "Read input file exceeded maximum size.");
+                goto finish;
+        }
+
         i->buffer_size += l;
 
         if (i->compress.type == IMPORT_COMPRESS_UNKNOWN) {