diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp
index b787655e6769..a5d6d875c76f 100644
--- a/src/libcamera/control_serializer.cpp
+++ b/src/libcamera/control_serializer.cpp
@@ -84,6 +84,11 @@ static constexpr size_t ControlValueSize[] = {
  * proceed with care to avoid stale references.
  */
 
+ControlSerializer::ControlSerializer()
+	: serial_(0)
+{
+}
+
 /**
  * \brief Reset the serializer
  *
diff --git a/src/libcamera/include/control_serializer.h b/src/libcamera/include/control_serializer.h
index bb3cb8e7b904..55259913a2ca 100644
--- a/src/libcamera/include/control_serializer.h
+++ b/src/libcamera/include/control_serializer.h
@@ -20,6 +20,8 @@ class ByteStreamBuffer;
 class ControlSerializer
 {
 public:
+	ControlSerializer();
+
 	void reset();
 
 	static size_t binarySize(const ControlInfoMap &info);
