From 0a44ef6d9afbfe052a7e975f55ea0d2954b62a82 Mon Sep 17 00:00:00 2001 From: jacobs Date: Wed, 15 Nov 2006 19:19:07 -0800 Subject: 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 --- usr/src/cmd/lp/lib/secure/secure.c | 51 +++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 28 deletions(-) (limited to 'usr/src/cmd/lp/lib/secure/secure.c') 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; } -- cgit v1.2.3