Home | History | Annotate | Download | only in kill
      1 /*
      2  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
      3  * Created by:  salwan.searty REMOVE-THIS AT intel DOT com
      4  * This file is licensed under the GPL license.  For the full content
      5  * of this license, see the COPYING file at the top level of this
      6  * source tree.
      7 
      8  This program tests the assertion that if the user id of the sending process
      9  doesn't match the user id of the receiving process (pid), then the kill function
     10  will fail with errno set to EPERM.
     11 
     12  */
     13 
     14 #include <signal.h>
     15 #include <stdio.h>
     16 #include <stdlib.h>
     17 #include <errno.h>
     18 #include <unistd.h>
     19 #include <sys/types.h>
     20 #include "posixtest.h"
     21 
     22 int main(void)
     23 {
     24 	/* this is added incase user is root. If user is normal user, then it
     25 	 * has no effect on the tests */
     26 	setuid(1);
     27 
     28 	if (kill(1, 0) != -1) {
     29 		printf
     30 		    ("Test FAILED: kill() succeeded even though this program's user id did not match the recieving process's user id\n");
     31 		return PTS_FAIL;
     32 	}
     33 
     34 	if (EPERM != errno) {
     35 		printf("Test FAILED: EPERM error not received\n");
     36 		return PTS_FAIL;
     37 	}
     38 
     39 	printf("Test PASSED\n");
     40 	return PTS_PASS;
     41 }
     42