summaryrefslogtreecommitdiff
path: root/usr/src/cmd/lp/lib/secure/secure.c
diff options
context:
space:
mode:
authorjacobs <none@none>2006-11-15 19:19:07 -0800
committerjacobs <none@none>2006-11-15 19:19:07 -0800
commit0a44ef6d9afbfe052a7e975f55ea0d2954b62a82 (patch)
treeafca18ba6ad0fb467b29e368f05399e53a19ec4a /usr/src/cmd/lp/lib/secure/secure.c
parent3383b6dda001791704e0e66f7b78dd0dfe74f547 (diff)
downloadillumos-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.c51
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;
}