since: 1.8.2

Declaration [src]

fu_memdup_safe (
  const guint8* src,
  gsize n,
  GError** error

Description [src]

Duplicates some memory using memdup 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.

NOTE: This function intentionally limits allocation size to 1GB.

Available since: 1.8.2



Type: const guint8*

Source buffer.

The argument can be NULL.
The data is owned by the caller of the function.

Type: gsize

Number of bytes to copy from src.


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: guint8*

Block of allocated memory, or NULL for an error.

The caller of the function takes ownership of the data, and is responsible for freeing it.