diff options
author | Simon Busch <morphis@gravedo.de> | 2012-09-09 13:29:34 +0200 |
---|---|---|
committer | Simon Busch <morphis@gravedo.de> | 2012-09-09 13:29:34 +0200 |
commit | 43adc7224042c4fb5ea9a719c0d5799a97ab451a (patch) | |
tree | b7d837af3d2c2f2349139e70073f756b84e994ac | |
parent | 3a9c878ca37442aca10917306fffb625c46b0ec4 (diff) | |
download | external_libsamsung-ipc-43adc7224042c4fb5ea9a719c0d5799a97ab451a.zip external_libsamsung-ipc-43adc7224042c4fb5ea9a719c0d5799a97ab451a.tar.gz external_libsamsung-ipc-43adc7224042c4fb5ea9a719c0d5799a97ab451a.tar.bz2 |
call: fix retrieval of the number of a call
-rw-r--r-- | samsung-ipc/call.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/samsung-ipc/call.c b/samsung-ipc/call.c index 5173dfc..77c3325 100644 --- a/samsung-ipc/call.c +++ b/samsung-ipc/call.c @@ -96,15 +96,16 @@ char* ipc_call_list_response_get_entry_number(struct ipc_message_info *response, if (num > count) return NULL; - for (n = 0; n < num; n++) + for (n = 0; n < num + 1; n++) { + if (entry != NULL) + pos += entry->number_len; + entry = (struct ipc_call_list_entry*) (response->data + pos); - pos += (unsigned int) (sizeof(struct ipc_call_list_entry) + entry->number_len); + pos += (unsigned int) sizeof(struct ipc_call_list_entry); } - if (entry == NULL || - (unsigned char*) (response->data + pos) == NULL || - (unsigned char*) (response->data + pos + entry->number_len) == NULL) + if (entry == NULL || (unsigned char*) (response->data + pos) == NULL) return NULL; number = (char*) malloc(sizeof(char) * entry->number_len); |