aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-03-17 15:06:42 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-03-17 15:06:42 +0000
commitebce1a511a60f3b4a9785c3962eaa381206c914f (patch)
tree186d5e4d0d324d043e700f4b6d9b4edc6b1f199f /src
parentcd456a4cafa392edcf96796fee73a0095b19b825 (diff)
downloadskalibs-ebce1a511a60f3b4a9785c3962eaa381206c914f.tar.gz
sassclient_update bugfix
Diffstat (limited to 'src')
-rw-r--r--src/libunixonacid/sassclient_update.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libunixonacid/sassclient_update.c b/src/libunixonacid/sassclient_update.c
index a60572d..7e9ee3f 100644
--- a/src/libunixonacid/sassclient_update.c
+++ b/src/libunixonacid/sassclient_update.c
@@ -17,23 +17,21 @@
static int sassclient_msghandler (struct iovec const *v, void *aux)
{
sassclient *a = aux ;
- char const *s = v->iov_base ;
int e ;
sassclient_data *p ;
uint32_t id ;
char res[8] ;
if (v->iov_len < 8) return (errno = EPROTO, 0) ;
- uint32_unpack_big(s, &id) ;
- memcpy(res, s, 4) ; s += 4 ;
+ memcpy(res, v->iov_base, 8) ;
+ uint32_unpack_big(res, &id) ;
p = GENSETDYN_P(sassclient_data, &a->store, id) ;
- if (memcmp(s, "\0\0\0", 4))
+ if (memcmp(res + 4, "\0\0\0", 4))
{
if (v->iov_len != 8) return (errno = EPROTO, 0) ;
- memcpy(res + 4, s, 4) ;
}
else
{
- e = (*p->cb)(s + 8, v->iov_len - 8, id, p->data) ;
+ e = (*p->cb)((char *)v->iov_base + 8, v->iov_len - 8, id, p->data) ;
uint32_pack_big(res + 4, e) ;
}
e = pthread_mutex_lock(&a->results_mutex) ;