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;
|
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)
|
int parcel_w_raw(struct parcel *p, const void *data, size_t len)
|
||||||
{
|
{
|
||||||
if (data == NULL) {
|
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_int32(struct parcel *p, int32_t val);
|
||||||
int parcel_w_string(struct parcel *p, const char *str);
|
int parcel_w_string(struct parcel *p, const char *str);
|
||||||
char *parcel_r_string(struct parcel *p);
|
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);
|
int parcel_w_raw(struct parcel *p, const void *data, size_t len);
|
||||||
void *parcel_r_raw(struct parcel *p, int *len);
|
void *parcel_r_raw(struct parcel *p, int *len);
|
||||||
size_t parcel_data_avail(struct parcel *p);
|
size_t parcel_data_avail(struct parcel *p);
|
||||||
|
|
Loading…
Reference in New Issue