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;
 

Reply via email to