Blame contrib/bug400591/bug.c

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