1/* 2 Unix SMB/Netbios implementation. 3 Version 1.9. 4 Security context tests 5 Copyright (C) Tim Potter 2000 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20*/ 21 22#include "includes.h" 23#include "sec_ctx_utils.h" 24 25int main (int argc, char **argv) 26{ 27 int i; 28 29 init_sec_ctx(); 30 31 /* Check for underflow */ 32 33 if (!push_sec_ctx()) { 34 printf("FAIL: push_sec_ctx\n"); 35 return 1; 36 } 37 38 set_sec_ctx(1, 1, 0, NULL); 39 40 if (!pop_sec_ctx()) { 41 printf("FAIL: pop_sec_ctx\n"); 42 return 1; 43 } 44 45 if (pop_sec_ctx()) { 46 printf("FAIL: underflow push_sec_ctx\n"); 47 return 1; 48 } 49 50 /* Check for overflow */ 51 52 for (i = 0; i < MAX_SEC_CTX_DEPTH + 1; i++) { 53 BOOL result; 54 55 result = push_sec_ctx(); 56 set_sec_ctx(i, i, 0, NULL); 57 58 if ((i < MAX_SEC_CTX_DEPTH) && !result) { 59 printf("FAIL: push_sec_ctx(%d)\n", i); 60 return 1; 61 } 62 63 if ((i == MAX_SEC_CTX_DEPTH + 1) && result) { 64 printf("FAIL: overflow push_sec_ctx(%d)\n", i); 65 return 1; 66 } 67 } 68 69 /* Everything's cool */ 70 71 printf("PASS\n"); 72 return 0; 73} 74