mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 05:52:36 +02:00
@@ -386,6 +386,8 @@ int dcat(const char *s, size_t n,
|
||||
unsigned short hextonum(char ch_s);
|
||||
void *mkrbuf(size_t n);
|
||||
void rset(void *buf, size_t n);
|
||||
void *mkrbuf(size_t n);
|
||||
char *mkrstr(size_t n);
|
||||
|
||||
/* Helper functions for command: dump
|
||||
*/
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "../include/common.h"
|
||||
|
||||
@@ -67,6 +68,30 @@
|
||||
* or your program dies.
|
||||
*/
|
||||
|
||||
char *
|
||||
mkrstr(size_t n) /* emulates spkmodem-decode */
|
||||
{
|
||||
char *s;
|
||||
size_t i;
|
||||
|
||||
if (n == 0)
|
||||
err_no_cleanup(0, EPERM, "mkrbuf: zero-byte request");
|
||||
|
||||
if (n == SIZE_MAX)
|
||||
err_no_cleanup(0, EOVERFLOW, "mkrbuf: overflow");
|
||||
|
||||
if (if_err((s = mkrbuf(n + 1)) == NULL, EFAULT))
|
||||
err_no_cleanup(0, EFAULT, "mkrstr: null");
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
while(*(s + i) == '\0')
|
||||
rset(s + i, 1);
|
||||
|
||||
*(s + n) = '\0';
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
void *
|
||||
mkrbuf(size_t n)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user