since: 1.8.2

Declaration [src]

fu_memread_uint32_safe (
  const guint8* buf,
  gsize bufsz,
  gsize offset,
  guint32* value,
  FuEndianType endian,
  GError** error

Description [src]

Read a value from a buffer using a specified endian in a safe way.

You don’t need to use this function in “obviously correct” cases, nor should you use it when performance is a concern. Only us it when you’re not sure if malicious data from a device or firmware could cause memory corruption.

Available since: 1.8.2



Type: const guint8*

Source buffer.

The data is owned by the caller of the function.

Type: gsize

Maximum size of buf, typically sizeof(buf)


Type: gsize

Offset in bytes into buf to copy from.


Type: guint32*

The parsed value.

The argument will be set by the function.
The argument can be set to NULL by the function.

Type: FuEndianType

An endian type, e.g. G_LITTLE_ENDIAN.


Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will be left initialized to NULL by the function if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: gboolean

TRUE if value was set, FALSE otherwise.