mirror of git://git.sysmocom.de/ofono
gril: Add parcel skip string
This commit is contained in:
parent
4717227603
commit
2d694836a6
|
@ -200,6 +200,27 @@ char *parcel_r_string(struct parcel *p)
|
|||
return ret;
|
||||
}
|
||||
|
||||
void parcel_skip_string(struct parcel *p)
|
||||
{
|
||||
int len16 = parcel_r_int32(p);
|
||||
int strbytes;
|
||||
|
||||
if (p->malformed)
|
||||
return;
|
||||
|
||||
/* This is how a null string is sent */
|
||||
if (len16 < 0)
|
||||
return;
|
||||
|
||||
strbytes = PAD_SIZE((len16 + 1) * sizeof(char16_t));
|
||||
if (p->offset + strbytes > p->size) {
|
||||
p->malformed = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
p->offset += strbytes;
|
||||
}
|
||||
|
||||
int parcel_w_raw(struct parcel *p, const void *data, size_t len)
|
||||
{
|
||||
if (data == NULL) {
|
||||
|
|
|
@ -44,6 +44,7 @@ int32_t parcel_r_int32(struct parcel *p);
|
|||
int parcel_w_int32(struct parcel *p, int32_t val);
|
||||
int parcel_w_string(struct parcel *p, const char *str);
|
||||
char *parcel_r_string(struct parcel *p);
|
||||
void parcel_skip_string(struct parcel *p);
|
||||
int parcel_w_raw(struct parcel *p, const void *data, size_t len);
|
||||
void *parcel_r_raw(struct parcel *p, int *len);
|
||||
size_t parcel_data_avail(struct parcel *p);
|
||||
|
|
Loading…
Reference in New Issue