The library was copying the swap structures badly. Attached is a patch
file that fixes the issue.
Thanks.
--- ./memory.c 2010-08-16 16:28:21.623394753 +0200
+++ Programación/workspace/libsysactivity/src/Linux/memory.c 2010-08-16 16:18:16.863387894 +0200
@@ -157,12 +157,12 @@
*written = 0;
int i;
- for (i = 0; i < dst_size; i++) {
- if (fgets(line_buffer, sizeof line_buffer, file_swaps) == NULL)
- return EIO;
+ for (i = 0; fgets(line_buffer, sizeof line_buffer, file_swaps) != NULL; i++) {
+ if (i >= dst_size)
+ return ENOMEM;
errno = 0;
- parse_swap(dst, line_buffer);
+ parse_swap(&dst[i], line_buffer);
if (errno != 0)
return ENOSYS;