[Groonga-commit] groonga/grnxx at 14b8762 [master] Add size check.

アーカイブの一覧に戻る

susumu.yata null+****@clear*****
Thu May 16 17:16:07 JST 2013


susumu.yata	2013-05-16 17:16:07 +0900 (Thu, 16 May 2013)

  New Revision: 14b876256aa49f78d2028a9703524ef7e9a8e71c
  https://github.com/groonga/grnxx/commit/14b876256aa49f78d2028a9703524ef7e9a8e71c

  Message:
    Add size check.

  Modified files:
    lib/grnxx/array/array_1d.cpp
    lib/grnxx/array/array_2d.cpp
    lib/grnxx/array/array_3d.cpp

  Modified: lib/grnxx/array/array_1d.cpp (+5 -0)
===================================================================
--- lib/grnxx/array/array_1d.cpp    2013-05-16 16:36:01 +0900 (1fbce3b)
+++ lib/grnxx/array/array_1d.cpp    2013-05-16 17:16:07 +0900 (ef67d7d)
@@ -128,6 +128,11 @@ bool Array1D::open_array(Storage *storage, uint32_t storage_node_id,
   if (!storage_node) {
     return false;
   }
+  if (storage_node.size() < sizeof(Array1DHeader)) {
+    GRNXX_ERROR() << "invalid format: node_size = " << storage_node.size()
+                  << ", header_size = " << sizeof(Array1DHeader);
+    return false;
+  }
   storage_node_id_ = storage_node.id();
   header_ = static_cast<Array1DHeader *>(storage_node.body());
   if (header_->value_size != value_size) {

  Modified: lib/grnxx/array/array_2d.cpp (+5 -0)
===================================================================
--- lib/grnxx/array/array_2d.cpp    2013-05-16 16:36:01 +0900 (d4e2bdc)
+++ lib/grnxx/array/array_2d.cpp    2013-05-16 17:16:07 +0900 (f21a550)
@@ -174,6 +174,11 @@ bool Array2D::open_array(Storage *storage, uint32_t storage_node_id,
   if (!storage_node) {
     return false;
   }
+  if (storage_node.size() < sizeof(Array2DHeader)) {
+    GRNXX_ERROR() << "invalid format: node_size = " << storage_node.size()
+                  << ", header_size = " << sizeof(Array2DHeader);
+    return false;
+  }
   storage_node_id_ = storage_node.id();
   header_ = static_cast<Array2DHeader *>(storage_node.body());
   if (header_->value_size != value_size) {

  Modified: lib/grnxx/array/array_3d.cpp (+5 -0)
===================================================================
--- lib/grnxx/array/array_3d.cpp    2013-05-16 16:36:01 +0900 (e152d2d)
+++ lib/grnxx/array/array_3d.cpp    2013-05-16 17:16:07 +0900 (c15c587)
@@ -176,6 +176,11 @@ bool Array3D::open_array(Storage *storage, uint32_t storage_node_id,
   if (!storage_node) {
     return false;
   }
+  if (storage_node.size() < sizeof(Array3DHeader)) {
+    GRNXX_ERROR() << "invalid format: node_size = " << storage_node.size()
+                  << ", header_size = " << sizeof(Array3DHeader);
+    return false;
+  }
   storage_node_id_ = storage_node.id();
   header_ = static_cast<Array3DHeader *>(storage_node.body());
   if (header_->value_size != value_size) {
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る