Skip to content

PHP Extension - Segmentation fault when serialize() is called on a protobuf message #24369

@FabioBatSilva

Description

@FabioBatSilva

The PHP C extension segfaults when serialize() is called on a protobuf message.

Important

This is a unusual use case but the extension should not crash if a proto message is serialize by mistake.


What version of protobuf and what language are you using?
Version: main
Language: php
OS: Linux

What did you do?

<?php
# serialize_segfault.php

require_once (dirname(__DIR__) . '/vendor/autoload.php');

use Foo\TestMessage;

$msg = new TestMessage(['optional_string' => "Hello, World!"]);

serialize($msg);
# Compile the extension 
./php/tests/compile_extension.sh

# Run script
php -d display_errors=on -dextension=../ext/google/protobuf/modules/protobuf.so  serialize_segfault.php

What did you expect to see

# no errors.

What did you see instead?

Segmentation fault

Patch here

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions