]> git.proxmox.com Git - pve-qemu.git/blobdiff - debian/patches/pve/0011-PVE-Up-qemu-img-dd-add-isize-parameter.patch
update submodule and patches to 7.1.0
[pve-qemu.git] / debian / patches / pve / 0011-PVE-Up-qemu-img-dd-add-isize-parameter.patch
index 29df3de04389204accbf67b726f168d986b8aa69..f367a537d7b72ee213535360af6d9b76dcdd7445 100644 (file)
@@ -10,15 +10,16 @@ an expected end of input.
 
 Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
 Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
+Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
 ---
  qemu-img.c | 28 +++++++++++++++++++++++++---
  1 file changed, 25 insertions(+), 3 deletions(-)
 
 diff --git a/qemu-img.c b/qemu-img.c
-index 8cd43b3601..67033b2d2c 100644
+index 74afcb79ef..14594d44b6 100644
 --- a/qemu-img.c
 +++ b/qemu-img.c
-@@ -4822,11 +4822,13 @@ static int img_bitmap(int argc, char **argv)
+@@ -4827,11 +4827,13 @@ static int img_bitmap(int argc, char **argv)
  #define C_OF      010
  #define C_SKIP    020
  #define C_OSIZE   040
@@ -32,7 +33,7 @@ index 8cd43b3601..67033b2d2c 100644
  };
  
  struct DdIo {
-@@ -4915,6 +4917,19 @@ static int img_dd_osize(const char *arg,
+@@ -4920,6 +4922,19 @@ static int img_dd_osize(const char *arg,
      return 0;
  }
  
@@ -52,7 +53,7 @@ index 8cd43b3601..67033b2d2c 100644
  static int img_dd(int argc, char **argv)
  {
      int ret = 0;
-@@ -4929,12 +4944,14 @@ static int img_dd(int argc, char **argv)
+@@ -4934,12 +4949,14 @@ static int img_dd(int argc, char **argv)
      int c, i;
      const char *out_fmt = "raw";
      const char *fmt = NULL;
@@ -68,7 +69,7 @@ index 8cd43b3601..67033b2d2c 100644
      };
      struct DdIo in = {
          .bsz = 512, /* Block size is by default 512 bytes */
-@@ -4956,6 +4973,7 @@ static int img_dd(int argc, char **argv)
+@@ -4961,6 +4978,7 @@ static int img_dd(int argc, char **argv)
          { "of", img_dd_of, C_OF },
          { "skip", img_dd_skip, C_SKIP },
          { "osize", img_dd_osize, C_OSIZE },
@@ -76,7 +77,7 @@ index 8cd43b3601..67033b2d2c 100644
          { NULL, NULL, 0 }
      };
      const struct option long_options[] = {
-@@ -5152,14 +5170,18 @@ static int img_dd(int argc, char **argv)
+@@ -5157,9 +5175,10 @@ static int img_dd(int argc, char **argv)
  
      in.buf = g_new(uint8_t, in.bsz);
  
@@ -84,12 +85,14 @@ index 8cd43b3601..67033b2d2c 100644
 +    readsize = (dd.isize > 0) ? dd.isize : size;
 +    for (out_pos = 0; in_pos < readsize; block_count++) {
          int in_ret, out_ret;
--        size_t in_bsz = in_pos + in.bsz > size ? size - in_pos : in.bsz;
-+        size_t in_bsz = in_pos + in.bsz > readsize ? readsize - in_pos : in.bsz;
+-        int bytes = (in_pos + in.bsz > size) ? size - in_pos : in.bsz;
++        int bytes = (in_pos + in.bsz > readsize) ? readsize - in_pos : in.bsz;
          if (blk1) {
-             in_ret = blk_pread(blk1, in_pos, in.buf, in_bsz);
+             in_ret = blk_pread(blk1, in_pos, bytes, in.buf, 0);
+             if (in_ret == 0) {
+@@ -5168,6 +5187,9 @@ static int img_dd(int argc, char **argv)
          } else {
-             in_ret = read(STDIN_FILENO, in.buf, in_bsz);
+             in_ret = read(STDIN_FILENO, in.buf, bytes);
              if (in_ret == 0) {
 +                if (dd.isize == 0) {
 +                    goto out;