| #include <assert.h> |
| #include <stdlib.h> |
| #include <sys/capability.h> |
| |
| /* |
| * Original from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=400591 |
| * |
| * Modified to test more functions.. AGM - 2008/07/06. |
| */ |
| |
| int main (int argc, char *argv[]) |
| { |
| cap_t caps, caps2; |
| ssize_t size, copy_size; |
| void *buffer; |
| char *text1, *text2; |
| |
| assert((caps = cap_get_pid(1))); |
| |
| text1 = cap_to_text(caps, NULL); |
| assert(text1); |
| |
| size = cap_size (caps); |
| assert (size>0 && size<1024); |
| |
| buffer = malloc (size); |
| assert (buffer); |
| |
| copy_size = cap_copy_ext (buffer, caps, size); |
| assert (copy_size == size); |
| |
| caps2 = cap_copy_int(buffer); |
| assert (caps2); |
| |
| text2 = cap_to_text(caps2, NULL); |
| assert(text2); |
| |
| assert(strcmp(text1, text2) == 0); |
| |
| assert(cap_compare(caps, caps2) == 0); |
| |
| return 0; |
| } |