diff options
author | jacobs <none@none> | 2006-11-15 19:19:07 -0800 |
---|---|---|
committer | jacobs <none@none> | 2006-11-15 19:19:07 -0800 |
commit | 0a44ef6d9afbfe052a7e975f55ea0d2954b62a82 (patch) | |
tree | afca18ba6ad0fb467b29e368f05399e53a19ec4a /usr/src/cmd/lp/lib/secure/secure.c | |
parent | 3383b6dda001791704e0e66f7b78dd0dfe74f547 (diff) | |
download | illumos-joyent-0a44ef6d9afbfe052a7e975f55ea0d2954b62a82.tar.gz |
4634017 Lpadmin's new printer limit needs to be increased.
4941143 lpsched leaks memory in freeprinter()
6480891 lpsched fixes unused files
6486772 in.lpd should use libpapi
6486967 print-svc refers to /usr/sbin/cut
6487898 lpadmin doesn't add remote access
6488443 printmr/lpadmin should prefer IPP support when it's available
6490445 psm-lpd has incorrect mime type in it's translation table
6490453 lpr uses the wrong default mime type
6491971 in.lpd and the ipp listener should detect cycles
6491978 libhttp-core should build when -DDEBUG is specified
6492414 lpstat -o -l should report on requested form when available
--HG--
rename : usr/src/cmd/lp/cmd/adaptor/Makefile => deleted_files/usr/src/cmd/lp/cmd/adaptor/Makefile
rename : usr/src/cmd/lp/cmd/adaptor/cancel_job.c => deleted_files/usr/src/cmd/lp/cmd/adaptor/cancel_job.c
rename : usr/src/cmd/lp/cmd/adaptor/misc.c => deleted_files/usr/src/cmd/lp/cmd/adaptor/misc.c
rename : usr/src/cmd/lp/cmd/adaptor/misc.h => deleted_files/usr/src/cmd/lp/cmd/adaptor/misc.h
rename : usr/src/cmd/lp/cmd/adaptor/show_queue.c => deleted_files/usr/src/cmd/lp/cmd/adaptor/show_queue.c
rename : usr/src/cmd/lp/cmd/adaptor/submit_job.c => deleted_files/usr/src/cmd/lp/cmd/adaptor/submit_job.c
rename : usr/src/cmd/print/gateway/Makefile => deleted_files/usr/src/cmd/print/gateway/Makefile
rename : usr/src/cmd/print/gateway/adaptor.c => deleted_files/usr/src/cmd/print/gateway/adaptor.c
rename : usr/src/cmd/print/gateway/adaptor.h => deleted_files/usr/src/cmd/print/gateway/adaptor.h
rename : usr/src/cmd/print/gateway/cleanup.xml => deleted_files/usr/src/cmd/print/gateway/cleanup.xml
rename : usr/src/cmd/print/gateway/main.c => deleted_files/usr/src/cmd/print/gateway/main.c
rename : usr/src/cmd/print/gateway/print-cleanup => deleted_files/usr/src/cmd/print/gateway/print-cleanup
rename : usr/src/cmd/print/gateway/printd.c => deleted_files/usr/src/cmd/print/gateway/printd.c
rename : usr/src/cmd/print/gateway/translators/Makefile => deleted_files/usr/src/cmd/print/gateway/translators/Makefile
rename : usr/src/cmd/print/gateway/translators/cascade/Makefile => deleted_files/usr/src/cmd/print/gateway/translators/cascade/Makefile
rename : usr/src/cmd/print/gateway/translators/cascade/cascade.c => deleted_files/usr/src/cmd/print/gateway/translators/cascade/cascade.c
rename : usr/src/cmd/print/gateway/translators/test/Makefile => deleted_files/usr/src/cmd/print/gateway/translators/test/Makefile
rename : usr/src/cmd/print/gateway/translators/test/README => deleted_files/usr/src/cmd/print/gateway/translators/test/README
rename : usr/src/cmd/print/gateway/translators/test/test.c => deleted_files/usr/src/cmd/print/gateway/translators/test/test.c
rename : usr/src/cmd/print/gateway/rfc1179.xml => usr/src/cmd/print/bsd-sysv-commands/rfc1179.xml
Diffstat (limited to 'usr/src/cmd/lp/lib/secure/secure.c')
-rw-r--r-- | usr/src/cmd/lp/lib/secure/secure.c | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/usr/src/cmd/lp/lib/secure/secure.c b/usr/src/cmd/lp/lib/secure/secure.c index 09796dec5e..81fac7b656 100644 --- a/usr/src/cmd/lp/lib/secure/secure.c +++ b/usr/src/cmd/lp/lib/secure/secure.c @@ -18,6 +18,7 @@ * * CDDL HEADER END */ + /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -27,7 +28,7 @@ /* All Rights Reserved */ -#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.14 */ +#pragma ident "%Z%%M% %I% %E% SMI" /* EMACS_MODES: !fill, lnumb, !overwrite, !nodelete, !picture */ #include "string.h" @@ -45,7 +46,7 @@ SECURE * getsecure(char *file) { - static SECURE secbuf; + SECURE *secp; char buf[BUFSIZ], *path; @@ -68,7 +69,9 @@ getsecure(char *file) } Free (path); - secbuf.user = 0; + secp = calloc(sizeof (*secp), 1); + + secp->user = 0; errno = 0; for ( fld = 0; @@ -79,42 +82,38 @@ getsecure(char *file) switch (fld) { case SC_REQID: - secbuf.req_id = Strdup(buf); + secp->req_id = Strdup(buf); break; case SC_UID: - secbuf.uid = (uid_t)atol(buf); + secp->uid = (uid_t)atol(buf); break; case SC_USER: - secbuf.user = Strdup(buf); + secp->user = Strdup(buf); break; case SC_GID: - secbuf.gid = (gid_t)atol(buf); + secp->gid = (gid_t)atol(buf); break; case SC_SIZE: - secbuf.size = (size_t)atol(buf); + secp->size = (size_t)atol(buf); break; case SC_DATE: - secbuf.date = (time_t)atol(buf); - break; - - case SC_SYSTEM: - secbuf.system = Strdup(buf); + secp->date = (time_t)atol(buf); break; case SC_SLABEL: - secbuf.slabel = Strdup(buf); + secp->slabel = Strdup(buf); break; } } if (errno != 0 || fld != SC_MAX) { int save_errno = errno; - freesecure (&secbuf); + freesecure (secp); close(fd); errno = save_errno; return (0); @@ -126,18 +125,18 @@ getsecure(char *file) * anything strange. */ if ( - secbuf.uid > MAXUID || secbuf.uid < -1 - || !secbuf.user - || secbuf.gid > MAXUID || secbuf.gid < -1 - || secbuf.size == 0 - || secbuf.date <= 0 + secp->uid > MAXUID || secp->uid < -1 + || !secp->user + || secp->gid > MAXUID || secp->gid < -1 + || secp->size == 0 + || secp->date <= 0 ) { - freesecure (&secbuf); + freesecure (secp); errno = EBADF; return (0); } - return (&secbuf); + return (secp); } /** @@ -200,10 +199,6 @@ putsecure(char *file, SECURE *secbufp) (void)fdprintf(fd, "%ld\n", secbufp->date); break; - case SC_SYSTEM: - (void)fdprintf(fd, "%s\n", secbufp->system); - break; - case SC_SLABEL: if (secbufp->slabel == NULL) { if (is_system_labeled()) { @@ -268,8 +263,8 @@ freesecure(SECURE *secbufp) Free (secbufp->req_id); if (secbufp->user) Free (secbufp->user); - if (secbufp->system) - Free (secbufp->system); + Free (secbufp); + return; } |