diff --git a/third_party/agg23/0011-path-storage-move-ctor.patch b/third_party/agg23/0011-path-storage-move-ctor.patch
new file mode 100644
index 0000000..c0fbee5
--- /dev/null
+++ b/third_party/agg23/0011-path-storage-move-ctor.patch
@@ -0,0 +1,67 @@
+diff --git a/third_party/agg23/agg_path_storage.cpp b/third_party/agg23/agg_path_storage.cpp
+index 2cd0caed1..1491e9e33 100644
+--- a/third_party/agg23/agg_path_storage.cpp
++++ b/third_party/agg23/agg_path_storage.cpp
+@@ -43,14 +43,20 @@ path_storage::~path_storage()
+         FX_Free(m_coord_blocks);
+     }
+ }
+-path_storage::path_storage() :
+-    m_total_vertices(0),
+-    m_total_blocks(0),
+-    m_max_blocks(0),
+-    m_coord_blocks(0),
+-    m_cmd_blocks(0),
+-    m_iterator(0)
+-{
++path_storage::path_storage() = default;
++path_storage::path_storage(path_storage&& other) {
++    m_total_vertices = other.m_total_vertices;
++    m_total_blocks = other.m_total_blocks;
++    m_max_blocks = other.m_max_blocks;
++    m_coord_blocks = other.m_coord_blocks;
++    m_cmd_blocks = other.m_cmd_blocks;
++    m_iterator = other.m_iterator;
++    other.m_total_vertices = 0;
++    other.m_total_blocks = 0;
++    other.m_max_blocks = 0;
++    other.m_coord_blocks = nullptr;
++    other.m_cmd_blocks = nullptr;
++    other.m_iterator = 0;
+ }
+ void path_storage::allocate_block(unsigned nb)
+ {
+diff --git a/third_party/agg23/agg_path_storage.h b/third_party/agg23/agg_path_storage.h
+index 55d6df001..8f10ff36d 100644
+--- a/third_party/agg23/agg_path_storage.h
++++ b/third_party/agg23/agg_path_storage.h
+@@ -50,6 +50,10 @@ public:
+     };
+     ~path_storage();
+     path_storage();
++    path_storage(path_storage&& other);
++    path_storage& operator=(path_storage&&) = delete;
++    path_storage(const path_storage&) = delete;
++    path_storage& operator=(const path_storage&) = delete;
+     unsigned last_vertex(float* x, float* y) const;
+     unsigned prev_vertex(float* x, float* y) const;
+     void move_to(float x, float y);
+@@ -116,12 +120,12 @@ private:
+     void allocate_block(unsigned nb);
+     unsigned char* storage_ptrs(float** xy_ptr);
+ private:
+-    unsigned        m_total_vertices;
+-    unsigned        m_total_blocks;
+-    unsigned        m_max_blocks;
+-    float**   m_coord_blocks;
+-    unsigned char** m_cmd_blocks;
+-    unsigned        m_iterator;
++    unsigned        m_total_vertices = 0;
++    unsigned        m_total_blocks = 0;
++    unsigned        m_max_blocks = 0;
++    float**         m_coord_blocks = nullptr;
++    unsigned char** m_cmd_blocks = nullptr;
++    unsigned        m_iterator = 0;
+ };
+ inline unsigned path_storage::vertex(float* x, float* y)
+ {
diff --git a/third_party/agg23/README.pdfium b/third_party/agg23/README.pdfium
index e241f94..dd11888 100644
--- a/third_party/agg23/README.pdfium
+++ b/third_party/agg23/README.pdfium
@@ -14,7 +14,7 @@
 Possibly more?
 0001-gcc-warning.patch: Fix a GCC warning about both enumeral and
 non-enumeral type in conditional.
-0002-ubsan-error-fixes.path: Fix UBSan errors for overflows.
+0002-ubsan-error-fixes.patch: Fix UBSan errors for overflows.
 0003-ubsan-render-line-error.patch: Fix UBSan overflow error in render_line.
 0004-ubsan-sweep-scanline-error.patch: Fix UBSan left shift of negative value
 error in sweep_scanline.
@@ -27,3 +27,4 @@
 0008-namespace.patch: Wrap all AGG code in namespace pdfium.
 0009-infinite-loop.patch: avoid hang in agg_math_stroke.h
 0010-math.patch: includes <math.h>
+0011-path-storage-move-ctor.patch: Add a move ctor for path_storage.
diff --git a/third_party/agg23/agg_path_storage.cpp b/third_party/agg23/agg_path_storage.cpp
index 2cd0cae..1491e9e 100644
--- a/third_party/agg23/agg_path_storage.cpp
+++ b/third_party/agg23/agg_path_storage.cpp
@@ -43,14 +43,20 @@
         FX_Free(m_coord_blocks);
     }
 }
-path_storage::path_storage() :
-    m_total_vertices(0),
-    m_total_blocks(0),
-    m_max_blocks(0),
-    m_coord_blocks(0),
-    m_cmd_blocks(0),
-    m_iterator(0)
-{
+path_storage::path_storage() = default;
+path_storage::path_storage(path_storage&& other) {
+    m_total_vertices = other.m_total_vertices;
+    m_total_blocks = other.m_total_blocks;
+    m_max_blocks = other.m_max_blocks;
+    m_coord_blocks = other.m_coord_blocks;
+    m_cmd_blocks = other.m_cmd_blocks;
+    m_iterator = other.m_iterator;
+    other.m_total_vertices = 0;
+    other.m_total_blocks = 0;
+    other.m_max_blocks = 0;
+    other.m_coord_blocks = nullptr;
+    other.m_cmd_blocks = nullptr;
+    other.m_iterator = 0;
 }
 void path_storage::allocate_block(unsigned nb)
 {
diff --git a/third_party/agg23/agg_path_storage.h b/third_party/agg23/agg_path_storage.h
index 55d6df0..8c2bd36 100644
--- a/third_party/agg23/agg_path_storage.h
+++ b/third_party/agg23/agg_path_storage.h
@@ -50,6 +50,10 @@
     };
     ~path_storage();
     path_storage();
+    path_storage(path_storage&& other);
+    path_storage& operator=(path_storage&&) = delete;
+    path_storage(const path_storage&) = delete;
+    path_storage& operator=(const path_storage&) = delete;
     unsigned last_vertex(float* x, float* y) const;
     unsigned prev_vertex(float* x, float* y) const;
     void move_to(float x, float y);
@@ -116,12 +120,12 @@
     void allocate_block(unsigned nb);
     unsigned char* storage_ptrs(float** xy_ptr);
 private:
-    unsigned        m_total_vertices;
-    unsigned        m_total_blocks;
-    unsigned        m_max_blocks;
-    float**   m_coord_blocks;
-    unsigned char** m_cmd_blocks;
-    unsigned        m_iterator;
+    unsigned        m_total_vertices = 0;
+    unsigned        m_total_blocks = 0;
+    unsigned        m_max_blocks = 0;
+    float**         m_coord_blocks = nullptr;
+    unsigned char** m_cmd_blocks = nullptr;
+    unsigned        m_iterator = 0;
 };
 inline unsigned path_storage::vertex(float* x, float* y)
 {
