Changeset 3232 in MondoRescue for branches/3.2/mindi-busybox/libpwdgrp
- Timestamp:
- Jan 1, 2014, 12:47:38 AM (10 years ago)
- Location:
- branches/3.2/mindi-busybox/libpwdgrp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2/mindi-busybox/libpwdgrp/pwd_grp.c
r2725 r3232 21 21 #include <assert.h> 22 22 23 #ifndef _PATH_SHADOW24 #define _PATH_SHADOW "/etc/shadow"25 #endif26 #ifndef _PATH_PASSWD27 #define _PATH_PASSWD "/etc/passwd"28 #endif29 #ifndef _PATH_GROUP30 #define _PATH_GROUP "/etc/group"31 #endif32 33 23 /**********************************************************************/ 34 24 /* Sizes for statically allocated buffers. */ 35 25 36 /* If you change these values, also change _SC_GETPW_R_SIZE_MAX and37 * _SC_GETGR_R_SIZE_MAX in libc/unistd/sysconf.c to match */38 26 #define PWD_BUFFER_SIZE 256 39 27 #define GRP_BUFFER_SIZE 256 … … 60 48 struct statics { 61 49 /* Smaller things first */ 62 struct passwd getpwuid_resultbuf; 63 struct group getgrgid_resultbuf; 64 struct passwd getpwnam_resultbuf; 65 struct group getgrnam_resultbuf; 66 67 char getpwuid_buffer[PWD_BUFFER_SIZE]; 68 char getgrgid_buffer[GRP_BUFFER_SIZE]; 69 char getpwnam_buffer[PWD_BUFFER_SIZE]; 70 char getgrnam_buffer[GRP_BUFFER_SIZE]; 71 #if 0 72 struct passwd fgetpwent_resultbuf; 73 struct group fgetgrent_resultbuf; 74 struct spwd fgetspent_resultbuf; 75 char fgetpwent_buffer[PWD_BUFFER_SIZE]; 76 char fgetgrent_buffer[GRP_BUFFER_SIZE]; 77 char fgetspent_buffer[PWD_BUFFER_SIZE]; 78 #endif 50 /* It's ok to use one buffer for getpwuid and getpwnam. Manpage says: 51 * "The return value may point to a static area, and may be overwritten 52 * by subsequent calls to getpwent(), getpwnam(), or getpwuid()." 53 */ 54 struct passwd getpw_resultbuf; 55 struct group getgr_resultbuf; 56 57 char getpw_buffer[PWD_BUFFER_SIZE]; 58 char getgr_buffer[GRP_BUFFER_SIZE]; 79 59 #if 0 //ENABLE_USE_BB_SHADOW 80 struct spwd getspuid_resultbuf; 81 struct spwd getspnam_resultbuf; 82 char getspuid_buffer[PWD_BUFFER_SIZE]; 83 char getspnam_buffer[PWD_BUFFER_SIZE]; 60 struct spwd getsp_resultbuf; 61 char getsp_buffer[PWD_BUFFER_SIZE]; 84 62 #endif 85 63 // Not converted - too small to bother … … 88 66 //FILE *grf /*= NULL*/; 89 67 //FILE *spf /*= NULL*/; 90 #if 091 struct passwd getpwent_pwd;92 struct group getgrent_gr;93 char getpwent_line_buff[PWD_BUFFER_SIZE];94 char getgrent_line_buff[GRP_BUFFER_SIZE];95 #endif96 #if 0 //ENABLE_USE_BB_SHADOW97 struct spwd getspent_spwd;98 struct spwd sgetspent_spwd;99 char getspent_line_buff[PWD_BUFFER_SIZE];100 char sgetspent_line_buff[PWD_BUFFER_SIZE];101 #endif102 68 }; 103 69 … … 193 159 { 194 160 struct statics *S; 195 struct passwd *resultbuf = RESULTBUF( fgetpwent);196 char *buffer = BUFFER( fgetpwent);161 struct passwd *resultbuf = RESULTBUF(getpw); 162 char *buffer = BUFFER(getpw); 197 163 struct passwd *result; 198 164 199 fgetpwent_r(stream, resultbuf, buffer, sizeof(BUFFER( fgetpwent)), &result);165 fgetpwent_r(stream, resultbuf, buffer, sizeof(BUFFER(getpw)), &result); 200 166 return result; 201 167 } … … 204 170 { 205 171 struct statics *S; 206 struct group *resultbuf = RESULTBUF( fgetgrent);207 char *buffer = BUFFER( fgetgrent);172 struct group *resultbuf = RESULTBUF(getgr); 173 char *buffer = BUFFER(getgr); 208 174 struct group *result; 209 175 210 fgetgrent_r(stream, resultbuf, buffer, sizeof(BUFFER( fgetgrent)), &result);176 fgetgrent_r(stream, resultbuf, buffer, sizeof(BUFFER(getgr)), &result); 211 177 return result; 212 178 } … … 218 184 { 219 185 struct statics *S; 220 struct spwd *resultbuf = RESULTBUF( fgetspent);221 char *buffer = BUFFER( fgetspent);186 struct spwd *resultbuf = RESULTBUF(getsp); 187 char *buffer = BUFFER(getsp); 222 188 struct spwd *result; 223 189 224 fgetspent_r(stream, resultbuf, buffer, sizeof(BUFFER( fgetspent)), &result);190 fgetspent_r(stream, resultbuf, buffer, sizeof(BUFFER(getsp)), &result); 225 191 return result; 226 192 } … … 310 276 { 311 277 struct statics *S; 312 struct passwd *resultbuf = RESULTBUF(getpw uid);313 char *buffer = BUFFER(getpw uid);278 struct passwd *resultbuf = RESULTBUF(getpw); 279 char *buffer = BUFFER(getpw); 314 280 struct passwd *result; 315 281 316 getpwuid_r(uid, resultbuf, buffer, sizeof(BUFFER(getpw uid)), &result);282 getpwuid_r(uid, resultbuf, buffer, sizeof(BUFFER(getpw)), &result); 317 283 return result; 318 284 } … … 322 288 { 323 289 struct statics *S; 324 struct group *resultbuf = RESULTBUF(getgr gid);325 char *buffer = BUFFER(getgr gid);290 struct group *resultbuf = RESULTBUF(getgr); 291 char *buffer = BUFFER(getgr); 326 292 struct group *result; 327 293 328 getgrgid_r(gid, resultbuf, buffer, sizeof(BUFFER(getgr gid)), &result);294 getgrgid_r(gid, resultbuf, buffer, sizeof(BUFFER(getgr)), &result); 329 295 return result; 330 296 } … … 335 301 * functions getspuid. Why getspuid was added, I do not know. */ 336 302 int getspuid_r(uid_t uid, struct spwd *__restrict resultbuf, 337 338 303 char *__restrict buffer, size_t buflen, 304 struct spwd **__restrict result) 339 305 { 340 306 int rv; … … 357 323 { 358 324 struct statics *S; 359 struct spwd *resultbuf = RESULTBUF(getsp uid);360 char *buffer = BUFFER(getsp uid);325 struct spwd *resultbuf = RESULTBUF(getsp); 326 char *buffer = BUFFER(getsp); 361 327 struct spwd *result; 362 328 363 getspuid_r(uid, resultbuf, buffer, sizeof(BUFFER(getsp uid)), &result);329 getspuid_r(uid, resultbuf, buffer, sizeof(BUFFER(getsp)), &result); 364 330 return result; 365 331 } … … 370 336 { 371 337 struct statics *S; 372 struct passwd *resultbuf = RESULTBUF(getpw nam);373 char *buffer = BUFFER(getpw nam);338 struct passwd *resultbuf = RESULTBUF(getpw); 339 char *buffer = BUFFER(getpw); 374 340 struct passwd *result; 375 341 376 getpwnam_r(name, resultbuf, buffer, sizeof(BUFFER(getpw nam)), &result);342 getpwnam_r(name, resultbuf, buffer, sizeof(BUFFER(getpw)), &result); 377 343 return result; 378 344 } … … 382 348 { 383 349 struct statics *S; 384 struct group *resultbuf = RESULTBUF(getgr nam);385 char *buffer = BUFFER(getgr nam);350 struct group *resultbuf = RESULTBUF(getgr); 351 char *buffer = BUFFER(getgr); 386 352 struct group *result; 387 353 388 getgrnam_r(name, resultbuf, buffer, sizeof(BUFFER(getgr nam)), &result);354 getgrnam_r(name, resultbuf, buffer, sizeof(BUFFER(getgr)), &result); 389 355 return result; 390 356 } … … 394 360 { 395 361 struct statics *S; 396 struct spwd *resultbuf = RESULTBUF(getsp nam);397 char *buffer = BUFFER(getsp nam);362 struct spwd *resultbuf = RESULTBUF(getsp); 363 char *buffer = BUFFER(getsp); 398 364 struct spwd *result; 399 365 400 getspnam_r(name, resultbuf, buffer, sizeof(BUFFER(getsp nam)), &result);366 getspnam_r(name, resultbuf, buffer, sizeof(BUFFER(getsp)), &result); 401 367 return result; 402 368 } … … 438 404 439 405 int getpwent_r(struct passwd *__restrict resultbuf, 440 441 406 char *__restrict buffer, size_t buflen, 407 struct passwd **__restrict result) 442 408 { 443 409 int rv; … … 452 418 goto ERR; 453 419 } 420 close_on_exec_on(fileno(pwf)); 454 421 } 455 422 … … 485 452 486 453 int getgrent_r(struct group *__restrict resultbuf, 487 488 454 char *__restrict buffer, size_t buflen, 455 struct group **__restrict result) 489 456 { 490 457 int rv; … … 499 466 goto ERR; 500 467 } 468 close_on_exec_on(fileno(grf)); 501 469 } 502 470 … … 534 502 535 503 int getspent_r(struct spwd *resultbuf, char *buffer, 536 504 size_t buflen, struct spwd **result) 537 505 { 538 506 int rv; … … 547 515 goto ERR; 548 516 } 517 close_on_exec_on(fileno(spf)); 549 518 } 550 519 -
branches/3.2/mindi-busybox/libpwdgrp/uidgid_get.c
r2725 r3232 72 72 } 73 73 gr = getgrnam(group); 74 if (!gr) return 0; 74 if (!gr) 75 return 0; 75 76 u->gid = gr->gr_gid; 76 77 }
Note:
See TracChangeset
for help on using the changeset viewer.