Changeset 2717
- Timestamp:
- 05/03/08 19:00:14 (7 months ago)
- Files:
-
- trunk/src/capability-compat.h (modified) (1 diff)
- trunk/src/rpm-fake.c (modified) (1 diff)
- trunk/src/vserver-info.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/capability-compat.h
r1822 r2717 30 30 31 31 #endif 32 33 #ifndef _LINUX_CAPABILITY_VERSION_1 34 # define _LINUX_CAPABILITY_VERSION_1 _LINUX_CAPABILITY_VERSION 35 #endif 36 37 #ifndef _LINUX_CAPABILITY_VERSION_2 38 # define _LINUX_CAPABILITY_VERSION_2 0x20071026 39 #endif trunk/src/rpm-fake.c
r2693 r2717 420 420 reduceCapabilities() 421 421 { 422 int retried = 0; 422 423 struct __user_cap_header_struct header; 423 struct __user_cap_data_struct user ;424 425 header.version = _LINUX_CAPABILITY_VERSION ;424 struct __user_cap_data_struct user[2]; 425 426 header.version = _LINUX_CAPABILITY_VERSION_2; 426 427 header.pid = 0; 427 428 428 if (capget(&header, &user)==-1) { 429 retry: 430 if (capget(&header, user)==-1) { 431 if (!retried && 432 header.version != _LINUX_CAPABILITY_VERSION_2) { 433 header.version = _LINUX_CAPABILITY_VERSION_1; 434 retried = 1; 435 goto retry; 436 } 429 437 perror("capget()"); 430 438 exit(wrapper_exit_code); 431 439 } 432 440 433 user .effective &= ~(1<<CAP_MKNOD);434 user .permitted &= ~(1<<CAP_MKNOD);435 user .inheritable &= ~(1<<CAP_MKNOD);436 437 if (capset(&header, &user)==-1) {441 user[0].effective &= ~(1<<CAP_MKNOD); 442 user[0].permitted &= ~(1<<CAP_MKNOD); 443 user[0].inheritable &= ~(1<<CAP_MKNOD); 444 445 if (capset(&header, user)==-1) { 438 446 perror("capset()"); 439 447 exit(wrapper_exit_code); trunk/src/vserver-info.c
r2589 r2717 186 186 verifyCap() 187 187 { 188 int retried = 0; 188 189 struct __user_cap_header_struct header; 189 struct __user_cap_data_struct user; 190 header.version = _LINUX_CAPABILITY_VERSION; 190 struct __user_cap_data_struct user[2]; 191 192 header.version = _LINUX_CAPABILITY_VERSION_2; 191 193 header.pid = 0; 192 194 … … 200 202 // return false; 201 203 // } 202 203 if (capget(&header, &user)==-1) { 204 205 retry: 206 if (capget(&header, user)==-1) { 207 if (!retried && 208 header.version != _LINUX_CAPABILITY_VERSION_2) { 209 header.version = _LINUX_CAPABILITY_VERSION_1; 210 retried = 1; 211 goto retry; 212 } 204 213 perror("capget()"); 205 214 return false; 206 215 } 207 216 208 user .effective = 0;209 user .permitted = 0;210 user .inheritable = 0;211 212 if (capset(&header, &user)==-1) {217 user[0].effective = user[1].effective = 0; 218 user[0].permitted = user[1].permitted = 0; 219 user[0].inheritable = user[1].inheritable = 0; 220 221 if (capset(&header, user)==-1) { 213 222 perror("capset()"); 214 223 return false;
