pecl_bug_5217.phpt 793 B

123456789101112131415161718192021222324252627282930
  1. --TEST--
  2. PDO Common: PECL Bug #5217 (serialize/unserialize safety)
  3. --EXTENSIONS--
  4. pdo
  5. --SKIPIF--
  6. <?php
  7. $dir = getenv('REDIR_TEST_DIR');
  8. if (false == $dir) die('skip no driver');
  9. require_once $dir . 'pdo_test.inc';
  10. PDOTest::skip();
  11. ?>
  12. --FILE--
  13. <?php
  14. if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/');
  15. require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
  16. $db = PDOTest::factory();
  17. try {
  18. $ser = serialize($db);
  19. debug_zval_dump($ser);
  20. $db = unserialize($ser);
  21. $db->exec('CREATE TABLE test (id int NOT NULL PRIMARY KEY, val VARCHAR(10))');
  22. } catch (Exception $e) {
  23. echo "Safely caught " . $e->getMessage() . "\n";
  24. }
  25. echo "PHP Didn't crash!\n";
  26. ?>
  27. --EXPECT--
  28. Safely caught Serialization of 'PDO' is not allowed
  29. PHP Didn't crash!