hc
2023-02-14 0cc9b7c44253c93447ddf73e206fbdbb3d9f16b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
From 368952c8cd81a2a4f4873a4d452178c499be2576 Mon Sep 17 00:00:00 2001
From: Jeffy Chen <jeffy.chen@rock-chips.com>
Date: Sat, 15 Dec 2018 15:57:16 +0800
Subject: [PATCH 2/3] Support w/o ramdisk
 
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---
 abootimg.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
 
diff --git a/abootimg.c b/abootimg.c
index 1ad03f1..b7b9b4b 100644
--- a/abootimg.c
+++ b/abootimg.c
@@ -289,10 +289,8 @@ int check_boot_img_header(t_abootimg* img)
     return 1;
   }
 
-  if (!(img->header.ramdisk_size)) {
+  if (!(img->header.ramdisk_size))
     fprintf(stderr, "%s: ramdisk size is null\n", img->fname);
-    return 1;
-  }
 
   unsigned page_size = img->header.page_size;
   if (!page_size) {
@@ -566,7 +564,7 @@ void update_images(t_abootimg *img)
     img->header.ramdisk_size = rsize;
     img->ramdisk = r;
   }
-  else if (img->kernel) {
+  else if (img->kernel && rsize) {
     // if kernel is updated, copy the ramdisk from original image
     char* r = malloc(rsize);
     if (!r)
@@ -806,6 +804,9 @@ void extract_ramdisk(t_abootimg* img)
   unsigned n = (ksize + psize - 1) / psize;
   unsigned roffset = (1+n)*psize;
 
+  if (!rsize)
+    return;
+
   printf ("extracting ramdisk in %s\n", img->ramdisk_fname);
 
   void* r = malloc(rsize);
@@ -934,7 +935,7 @@ int main(int argc, char** argv)
       break;
 
     case create:
-      if (!bootimg->kernel_fname || !bootimg->ramdisk_fname) {
+      if (!bootimg->kernel_fname) {
         print_usage();
         break;
       }
-- 
2.11.0