summaryrefslogtreecommitdiff
path: root/usr/src/lib/libpkg/common
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@nexenta.com>2010-11-15 20:03:27 -0800
committerGarrett D'Amore <garrett@nexenta.com>2010-11-15 20:03:27 -0800
commit4656d4747c8743290bfbe910c64cd75eb4e4af8d (patch)
tree241d8b3f0b8796e33937c6a27c670eba002f8f04 /usr/src/lib/libpkg/common
parent60bec29ea42d65ac648c69b0fb189273e286ca57 (diff)
downloadillumos-gate-4656d4747c8743290bfbe910c64cd75eb4e4af8d.tar.gz
420 remove patch (sparse package) support from svr4 pkg
421 libpkg and libadm need to be lint clean Reviewed by: gwr@nexenta.com Reviewed by: peter.tribble@gmail.com Approved by: gwr@nexenta.com
Diffstat (limited to 'usr/src/lib/libpkg/common')
-rw-r--r--usr/src/lib/libpkg/common/ckparam.c2
-rw-r--r--usr/src/lib/libpkg/common/dstream.c232
-rw-r--r--usr/src/lib/libpkg/common/gpkglist.c5
-rw-r--r--usr/src/lib/libpkg/common/gpkgmap.c15
-rw-r--r--usr/src/lib/libpkg/common/keystore.c6
-rw-r--r--usr/src/lib/libpkg/common/logerr.c4
-rw-r--r--usr/src/lib/libpkg/common/mapfile-vers2
-rw-r--r--usr/src/lib/libpkg/common/ncgrpw.c40
-rw-r--r--usr/src/lib/libpkg/common/pkgerr.c12
-rw-r--r--usr/src/lib/libpkg/common/pkgexecv.c8
-rw-r--r--usr/src/lib/libpkg/common/pkglib.h102
-rw-r--r--usr/src/lib/libpkg/common/pkglibmsgs.h16
-rw-r--r--usr/src/lib/libpkg/common/pkgmount.c18
-rw-r--r--usr/src/lib/libpkg/common/pkgserv.c3
-rw-r--r--usr/src/lib/libpkg/common/pkgtrans.c260
-rw-r--r--usr/src/lib/libpkg/common/pkgweb.c22
-rw-r--r--usr/src/lib/libpkg/common/pkgxpand.c118
-rw-r--r--usr/src/lib/libpkg/common/ppkgmap.c24
-rw-r--r--usr/src/lib/libpkg/common/progerr.c2
-rw-r--r--usr/src/lib/libpkg/common/putcfile.c4
-rw-r--r--usr/src/lib/libpkg/common/runcmd.c246
-rw-r--r--usr/src/lib/libpkg/common/tputcfent.c10
-rw-r--r--usr/src/lib/libpkg/common/verify.c31
-rw-r--r--usr/src/lib/libpkg/common/vfpops.c2
24 files changed, 249 insertions, 935 deletions
diff --git a/usr/src/lib/libpkg/common/ckparam.c b/usr/src/lib/libpkg/common/ckparam.c
index 68284e6012..47beb1c6be 100644
--- a/usr/src/lib/libpkg/common/ckparam.c
+++ b/usr/src/lib/libpkg/common/ckparam.c
@@ -162,7 +162,7 @@ static int
too_long(char *param, char *pt, int len)
{
if (strlen(pt) > (size_t)len) {
- progerr(pkg_gt(ERR_LEN), pt);
+ progerr(pkg_gt(ERR_LEN), param);
return (1);
}
return (0);
diff --git a/usr/src/lib/libpkg/common/dstream.c b/usr/src/lib/libpkg/common/dstream.c
index 68ff540393..38ca430614 100644
--- a/usr/src/lib/libpkg/common/dstream.c
+++ b/usr/src/lib/libpkg/common/dstream.c
@@ -42,18 +42,10 @@
#include <sys/stat.h>
#include <sys/statvfs.h>
#include <fcntl.h>
-#ifdef u3b2
-#include <sys/sys3b.h>
-#endif /* u3b2 */
#include <openssl/err.h>
#include "pkglib.h"
#include "pkglibmsgs.h"
#include "pkglocale.h"
-#ifdef u3b2
-static
-struct stat orig_st_buf; /* Stat structure of original file (3B2/CTC) */
-static char ds_ctcflg;
-#endif /* u3b2 */
/* libadm.a */
extern char *devattr(char *device, char *attribute);
@@ -203,7 +195,7 @@ ds_readbuf(char *device)
(void) ds_close(0);
return (0);
}
- memcpy(ds_header, buf, BLK_SIZE);
+ (void) memcpy(ds_header, buf, BLK_SIZE);
ds_headsize = BLK_SIZE;
if (ds_ginit(device) < 0) {
@@ -232,7 +224,7 @@ ds_volsum(struct dstoc *toc)
char volnos[128], tmpvol[128];
if (toc->volnos[0]) {
int index, sum;
- sscanf(toc->volnos, "%d %[ 0-9]", &curpartcnt, volnos);
+ (void) sscanf(toc->volnos, "%d %[ 0-9]", &curpartcnt, volnos);
volcnt = 0;
sum = curpartcnt;
while (sum < toc->nparts && sscanf(volnos, "%d %[ 0-9]",
@@ -254,7 +246,8 @@ static void
ds_pkginit(void)
{
if (ds_toc->volnos[0])
- sscanf(ds_toc->volnos, "%d %[ 0-9]", &ds_curpartcnt, ds_volnos);
+ (void) sscanf(ds_toc->volnos, "%d %[ 0-9]", &ds_curpartcnt,
+ ds_volnos);
else
ds_curpartcnt = -1;
}
@@ -263,9 +256,9 @@ ds_pkginit(void)
* functions to pass current package info to exec'ed program
*/
void
-ds_putinfo(char *buf)
+ds_putinfo(char *buf, size_t sz)
{
- (void) sprintf(buf, "%d %d %d %d %d %d %d %d %d %d %s",
+ (void) snprintf(buf, sz, "%d %d %d %d %d %d %d %d %d %d %s",
ds_fd, ds_realfd, ds_volcnt, ds_volno, ds_totread, ds_volpart,
ds_skippart, ds_bufsize, ds_toc->nparts, ds_toc->maxsiz,
ds_toc->volnos);
@@ -435,7 +428,7 @@ ds_init(char *device, char **pkg, char *norewind)
(void) ds_close(0);
return (1);
}
- memcpy(ds_header_raw, ds_header, header_size);
+ (void) memcpy(ds_header_raw, ds_header, header_size);
/* read datastream table of contents */
ds_head = tail = (struct dstoc *)0;
@@ -454,6 +447,7 @@ ds_init(char *device, char **pkg, char *norewind)
(void) free(ds_header);
return (-1);
}
+ /* LINTED E_SEC_SCANF_UNBOUNDED_COPY */
if (sscanf(line, "%s %d %d %[ 0-9]", toc_pt->pkg,
&toc_pt->nparts, &toc_pt->maxsiz, toc_pt->volnos) < 3) {
progerr(pkg_gt(ERR_UNPACK));
@@ -476,8 +470,8 @@ ds_init(char *device, char **pkg, char *norewind)
(void) free(ds_header);
return (-1);
}
- sighold(SIGINT);
- sigrelse(SIGINT);
+ (void) sighold(SIGINT);
+ (void) sigrelse(SIGINT);
if (!ds_head) {
progerr(pkg_gt(ERR_UNPACK));
logerr(pkg_gt(MSG_EMPTY));
@@ -485,25 +479,22 @@ ds_init(char *device, char **pkg, char *norewind)
return (-1);
}
/* this could break, thanks to cpio command limit */
-#ifndef SUNOS41
- (void) sprintf(cmd, "%s -icdumD -C %d", CPIOPROC, (int)BLK_SIZE);
-#else
- (void) sprintf(cmd, "%s -icdum -C %d", CPIOPROC, (int)BLK_SIZE);
-#endif
+ (void) snprintf(cmd, sizeof (cmd), "%s -icdumD -C %d",
+ CPIOPROC, (int)BLK_SIZE);
n = 0;
for (i = 0; pkg[i]; i++) {
if (strcmp(pkg[i], "all") == 0)
continue;
if (n == 0) {
- strcat(cmd, " ");
+ (void) strlcat(cmd, " ", CMDSIZ);
n = 1;
}
- strlcat(cmd, pkg[i], CMDSIZ);
- strlcat(cmd, "'/*' ", CMDSIZ);
+ (void) strlcat(cmd, pkg[i], CMDSIZ);
+ (void) strlcat(cmd, "'/*' ", CMDSIZ);
/* extract signature too, if present. */
- strlcat(cmd, SIGNATURE_FILENAME, CMDSIZ);
- strlcat(cmd, " ", CMDSIZ);
+ (void) strlcat(cmd, SIGNATURE_FILENAME, CMDSIZ);
+ (void) strlcat(cmd, " ", CMDSIZ);
}
/*
@@ -608,13 +599,9 @@ ds_getpkg(char *device, int n, char *dstdir)
logerr(pkg_gt(MSG_STATFS), errno);
return (-1);
}
-#ifdef SUNOS41
- free_blocks = svfsb.f_bfree * howmany(svfsb.f_bsize, DEV_BSIZE);
-#else /* !SUNOS41 */
free_blocks = (((long)svfsb.f_frsize > 0) ?
- howmany(svfsb.f_frsize, DEV_BSIZE) :
- howmany(svfsb.f_bsize, DEV_BSIZE)) * svfsb.f_bfree;
-#endif /* SUNOS41 */
+ howmany(svfsb.f_frsize, DEV_BSIZE) :
+ howmany(svfsb.f_bsize, DEV_BSIZE)) * svfsb.f_bfree;
if ((ds_maxsiz + 50) > free_blocks) {
progerr(pkg_gt(ERR_UNPACK));
logerr(pkg_gt(MSG_NOSPACE), ds_maxsiz+50, free_blocks);
@@ -659,12 +646,8 @@ ds_skip(char *device, int nskip)
while (nskip--) {
/* skip this one */
-#ifndef SUNOS41
- (void) sprintf(cmd, "%s -ictD -C %d > /dev/null",
-#else
- (void) sprintf(cmd, "%s -ict -C %d > /dev/null",
-#endif
- CPIOPROC, (int)BLK_SIZE);
+ (void) snprintf(cmd, sizeof (cmd),
+ "%s -ictD -C %d > /dev/null", CPIOPROC, (int)BLK_SIZE);
if (n = esystem(cmd, ds_fd, -1)) {
rpterr();
progerr(pkg_gt(ERR_UNPACK));
@@ -706,11 +689,7 @@ ds_next(char *device, char *instdir)
(void) strcpy(ds_volnos, tmpvol);
ds_curpartcnt += index;
}
-#ifndef SUNOS41
- (void) sprintf(cmd, "%s -icdumD -C %d",
-#else
- (void) sprintf(cmd, "%s -icdum -C %d",
-#endif
+ (void) snprintf(cmd, sizeof (cmd), "%s -icdumD -C %d",
CPIOPROC, (int)BLK_SIZE);
if (n = esystem(cmd, ds_fd, -1)) {
rpterr();
@@ -794,7 +773,7 @@ BIO_ds_dump_header(PKG_ERR *err, BIO *bio)
char zeros[BLK_SIZE];
- memset(zeros, 0, BLK_SIZE);
+ (void) memset(zeros, 0, BLK_SIZE);
if (BIO_write(bio, ds_header_raw, ds_headsize) != ds_headsize) {
pkgerr_add(err, PKGERR_WRITE, ERR_WRITE, "bio",
@@ -807,32 +786,12 @@ BIO_ds_dump_header(PKG_ERR *err, BIO *bio)
/*
* ds_ginit: Determine the device being accessed, set the buffer size,
- * and perform any device specific initialization. For the 3B2,
- * a device with major number of 17 (0x11) is an internal hard disk,
- * unless the minor number is 128 (0x80) in which case it is an internal
- * floppy disk. Otherwise, get the system configuration
- * table and check it by comparing slot numbers to major numbers.
- * For the special case of the 3B2 CTC several unusual things must be done.
- * To enable
- * streaming mode on the CTC, the file descriptor must be closed, re-opened
- * (with O_RDWR and O_CTSPECIAL flags set), the STREAMON ioctl(2) command
- * issued, and the file descriptor re-re-opened either read-only or write_only.
+ * and perform any device specific initialization.
*/
int
ds_ginit(char *device)
{
-#ifdef u3b2
- major_t maj;
- minor_t min;
- int nflag, i, count, size;
- struct s3bconf *buffer;
- struct s3bc *table;
- struct stat st_buf;
- int devtype;
- char buf[BLK_SIZE];
- int fd2, fd;
-#endif /* u3b2 */
int oflag;
char *pbufsize, cmd[CMDSIZ];
int fd2, fd;
@@ -843,104 +802,7 @@ ds_ginit(char *device)
} else
ds_bufsize = BLK_SIZE;
oflag = fcntl(ds_fd, F_GETFL, 0);
-#ifdef u3b2
- devtype = G_NO_DEV;
- if (fstat(ds_fd, &st_buf) == -1)
- return (-1);
- if (!S_ISCHR(st_buf.st_mode) && !S_ISBLK(st_buf.st_mode))
- goto lab;
-
- /*
- * We'll have to add a remote attribute to stat but this should
- * work for now.
- */
- else if (st_buf.st_dev & 0x8000) /* if remote rdev */
- goto lab;
-
- maj = major(st_buf.st_rdev);
- min = minor(st_buf.st_rdev);
- if (maj == 0x11) { /* internal hard or floppy disk */
- if (min & 0x80)
- devtype = G_3B2_FD; /* internal floppy disk */
- else
- devtype = G_3B2_HD; /* internal hard disk */
- } else {
- if (sys3b(S3BCONF, (struct s3bconf *)&count, sizeof (count)) ==
- -1)
- return (-1);
- size = sizeof (int) + (count * sizeof (struct s3bconf));
- buffer = (struct s3bconf *)malloc((unsigned)size);
- if (sys3b(S3BCONF, buffer, size) == -1)
- return (-1);
- table = (struct s3bc *)((char *)buffer + sizeof (int));
- for (i = 0; i < count; i++) {
- if (maj == (int)table->board) {
- if (strncmp(table->name, "CTC", 3) == 0) {
- devtype = G_3B2_CTC;
- break;
- } else if (strncmp(table->name, "TAPE", 4)
- == 0) {
- devtype = G_TAPE;
- break;
- }
- /* other possible devices can go here */
- }
- table++;
- }
- }
- switch (devtype) {
- case G_3B2_CTC: /* do special CTC initialization */
- ds_bufsize = pbufsize ? ds_bufsize : 15872;
- if (fstat(ds_fd, &orig_st_buf) < 0) {
- ds_bufsize = -1;
- break;
- }
- nflag = (O_RDWR | O_CTSPECIAL);
- (void) close(ds_fd);
- if ((ds_fd = open(device, nflag, 0666)) != -1) {
- if (ioctl(ds_fd, STREAMON) != -1) {
- (void) close(ds_fd);
- nflag = (oflag == O_WRONLY) ?
- O_WRONLY : O_RDONLY;
- if ((ds_fd =
- open(device, nflag, 0666)) == -1) {
- rpterr();
- progerr(
- pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_OPEN),
- device, errno);
- return (-1);
- }
- ds_bufsize = 15872;
- }
- } else
- ds_bufsize = -1;
- if (oflag == O_RDONLY && ds_header && ds_totread == 0)
- /* Have already read in first block of header */
- read(ds_fd, buf, BLK_SIZE);
- ds_ctcflg = 1;
- break;
- case G_NO_DEV:
- case G_3B2_HD:
- case G_3B2_FD:
- case G_TAPE:
- case G_SCSI_HD: /* not developed yet */
- case G_SCSI_FD:
- case G_SCSI_9T:
- case G_SCSI_Q24:
- case G_SCSI_Q120:
- case G_386_HD:
- case G_386_FD:
- case G_386_Q24:
- ds_bufsize = pbufsize ? ds_bufsize : BLK_SIZE;
- break;
- default:
- ds_bufsize = -1;
- errno = ENODEV;
- } /* devtype */
-lab:
-#endif /* u3b2 */
if (ds_bufsize > BLK_SIZE) {
if (oflag & O_WRONLY)
fd = 1;
@@ -948,20 +810,20 @@ lab:
fd = 0;
fd2 = fcntl(fd, F_DUPFD, fd);
(void) close(fd);
- fcntl(ds_fd, F_DUPFD, fd);
+ (void) fcntl(ds_fd, F_DUPFD, fd);
if (fd)
- sprintf(cmd, "%s obs=%d 2>/dev/null", DDPROC,
- ds_bufsize);
+ (void) snprintf(cmd, sizeof (cmd),
+ "%s obs=%d 2>/dev/null", DDPROC, ds_bufsize);
else
- sprintf(cmd, "%s ibs=%d 2>/dev/null", DDPROC,
- ds_bufsize);
+ (void) snprintf(cmd, sizeof (cmd),
+ "%s ibs=%d 2>/dev/null", DDPROC, ds_bufsize);
if ((ds_pp = popen(cmd, fd ? "w" : "r")) == NULL) {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_POPEN), cmd, errno);
return (-1);
}
(void) close(fd);
- fcntl(fd2, F_DUPFD, fd);
+ (void) fcntl(fd2, F_DUPFD, fd);
(void) close(fd2);
ds_realfd = ds_fd;
ds_fd = fileno(ds_pp);
@@ -972,42 +834,8 @@ lab:
int
ds_close(int pkgendflg)
{
-#ifdef u3b2
- int cnt, mode;
- char *ptr;
- struct stat statbuf;
-#endif /* u3b2 */
int n, ret = 0;
-#ifdef u3b2
- if (ds_pp && ds_ctcflg) {
- ds_ctcflg = 0;
- if ((mode = fcntl(ds_realfd, F_GETFL, 0)) < 0) {
- ret = -1;
- } else if (mode & O_WRONLY) {
- /*
- * pipe to dd write process,
- * make sure one more buffer
- * gets written out
- */
- if ((ptr = calloc(BLK_SIZE, 1)) == NULL) {
- ret = -1;
- /* pad to bufsize */
- } else {
- cnt = ds_bufsize;
- while (cnt > 0) {
- if ((n = write(ds_fd, ptr,
- BLK_SIZE)) < 0) {
- ret = -1;
- break;
- }
- cnt -= n;
- }
- (void) free(ptr);
- }
- }
- }
-#endif
if (pkgendflg) {
if (ds_header)
(void) free(ds_header);
diff --git a/usr/src/lib/libpkg/common/gpkglist.c b/usr/src/lib/libpkg/common/gpkglist.c
index 9257c6afcb..34708b8fe6 100644
--- a/usr/src/lib/libpkg/common/gpkglist.c
+++ b/usr/src/lib/libpkg/common/gpkglist.c
@@ -146,8 +146,9 @@ gpkglist(char *dir, char **pkg, char **catg)
if (!info.pkginst || !info.name || !info.arch ||
!info.version)
continue;
- (void) sprintf(temp, "%s %s\n(%s) %s", info.pkginst,
- info.name, info.arch, info.version);
+ (void) snprintf(temp, sizeof (temp),
+ "%s %s\n(%s) %s", info.pkginst,
+ info.name, info.arch, info.version);
if (setitem(menup, temp)) {
errno = EFAULT;
return (NULL);
diff --git a/usr/src/lib/libpkg/common/gpkgmap.c b/usr/src/lib/libpkg/common/gpkgmap.c
index d94b16c4d1..4bbe60dfc3 100644
--- a/usr/src/lib/libpkg/common/gpkgmap.c
+++ b/usr/src/lib/libpkg/common/gpkgmap.c
@@ -147,13 +147,8 @@ gpkgmap(struct cfent *ept, FILE *fp)
ept->ainfo.mode = d_mode;
(void) strcpy(ept->ainfo.owner, d_owner);
(void) strcpy(ept->ainfo.group, d_group);
-#ifdef SUNOS41
- ept->ainfo.xmajor = BADMAJOR;
- ept->ainfo.xminor = BADMINOR;
-#else
ept->ainfo.major = BADMAJOR;
ept->ainfo.minor = BADMINOR;
-#endif
ept->cinfo.cksum = ept->cinfo.modtime = ept->cinfo.size = (-1L);
ept->npkgs = 0;
@@ -310,18 +305,10 @@ error:
}
if (strchr("cb", ept->ftype)) {
-#ifdef SUNOS41
- ept->ainfo.xmajor = BADMAJOR;
- ept->ainfo.xminor = BADMINOR;
- if (getnum(fp, 10, (long *)&ept->ainfo.xmajor, BADMAJOR) ||
- getnum(fp, 10, (long *)&ept->ainfo.xminor, BADMINOR))
-#else
ept->ainfo.major = BADMAJOR;
ept->ainfo.minor = BADMINOR;
if (getnum(fp, 10, (long *)&ept->ainfo.major, BADMAJOR) ||
- getnum(fp, 10, (long *)&ept->ainfo.minor, BADMINOR))
-#endif
- {
+ getnum(fp, 10, (long *)&ept->ainfo.minor, BADMINOR)) {
setErrstr(pkg_gt(ERR_CANNOT_READ_MM_DEVNUMS));
goto error;
}
diff --git a/usr/src/lib/libpkg/common/keystore.c b/usr/src/lib/libpkg/common/keystore.c
index ad94b96c2d..633c04b58e 100644
--- a/usr/src/lib/libpkg/common/keystore.c
+++ b/usr/src/lib/libpkg/common/keystore.c
@@ -994,7 +994,7 @@ check_cert(PKG_ERR *err, X509 *cert)
{
char currtimestr[ATTR_MAX];
time_t currtime;
- char *r, *before_str, *after_str;
+ char *r;
/* get current time */
if ((currtime = time(NULL)) == (time_t)-1) {
pkgerr_add(err, PKGERR_TIME, gettext(ERR_CURR_TIME));
@@ -1942,7 +1942,7 @@ write_keystore(PKG_ERR *err, keystore_t *keystore,
* use the one used when the keystore
* was read
*/
- strlcpy(passbuf, keystore->passphrase,
+ (void) strlcpy(passbuf, keystore->passphrase,
KEYSTORE_PASS_MAX);
}
@@ -1984,7 +1984,7 @@ write_keystore(PKG_ERR *err, keystore_t *keystore,
}
} else {
/* use the one used when the keystore was read */
- strlcpy(passbuf, keystore->passphrase,
+ (void) strlcpy(passbuf, keystore->passphrase,
KEYSTORE_PASS_MAX);
}
diff --git a/usr/src/lib/libpkg/common/logerr.c b/usr/src/lib/libpkg/common/logerr.c
index 7d304b059e..2c648f2fdd 100644
--- a/usr/src/lib/libpkg/common/logerr.c
+++ b/usr/src/lib/libpkg/common/logerr.c
@@ -34,7 +34,7 @@
#include <stdarg.h>
#include "pkglocale.h"
-/*VARARGS*/
+/*PRINTFLIKE1*/
void
logerr(char *fmt, ...)
{
@@ -59,7 +59,7 @@ logerr(char *fmt, ...)
* this routine be in the same internationalization domain
* as this library.
*/
- (void) vsprintf(buffer, fmt, ap);
+ (void) vsnprintf(buffer, sizeof (buffer), fmt, ap);
va_end(ap);
diff --git a/usr/src/lib/libpkg/common/mapfile-vers b/usr/src/lib/libpkg/common/mapfile-vers
index ce2bad1bbe..ffdda251f7 100644
--- a/usr/src/lib/libpkg/common/mapfile-vers
+++ b/usr/src/lib/libpkg/common/mapfile-vers
@@ -132,14 +132,12 @@ SYMBOL_VERSION SUNWprivate {
open_keystore;
path_valid;
pkg_passphrase_cb;
- pkgalias;
pkgclosefilter;
pkgcloseserver;
pkgcmd;
pkgerr;
pkgerr_add;
pkgerr_clear;
- pkgerr_dump;
pkgerr_free;
pkgerr_get;
pkgerr_new;
diff --git a/usr/src/lib/libpkg/common/ncgrpw.c b/usr/src/lib/libpkg/common/ncgrpw.c
index cf3151164e..52eb9f813b 100644
--- a/usr/src/lib/libpkg/common/ncgrpw.c
+++ b/usr/src/lib/libpkg/common/ncgrpw.c
@@ -595,15 +595,16 @@ clgrnam(char *nam)
struct group *gr;
char *instroot, *buf;
FILE *gr_ptr;
+ size_t bufsz;
if ((instroot = get_install_root()) != NULL) {
- if ((buf = (char *)malloc(strlen(instroot) +
- strlen(GROUP) + 1)) == NULL) {
+ bufsz = strlen(instroot) + strlen(GROUP) + 1;
+ if ((buf = (char *)malloc(bufsz)) == NULL) {
(void) fprintf(stderr,
- pkg_gt(ERR_MALLOC), "clgrnam()",
- strlen(instroot) + strlen(GROUP), "buf");
+ pkg_gt(ERR_MALLOC), "clgrnam()",
+ strlen(instroot) + strlen(GROUP), "buf");
}
- (void) sprintf(buf, "%s%s", instroot, GROUP);
+ (void) snprintf(buf, bufsz, "%s%s", instroot, GROUP);
if ((gr_ptr = fopen(buf, "r")) == NULL) {
free(buf);
return (NULL);
@@ -636,13 +637,12 @@ clpwnam(char *nam)
FILE *pw_ptr;
if ((instroot = get_install_root()) != NULL) {
- if ((buf = (char *)malloc(strlen(instroot) +
- strlen(PASSWD) + 1)) == NULL) {
+ if (asprintf(&buf, "%s%s", instroot, PASSWD) < 0) {
(void) fprintf(stderr,
- pkg_gt(ERR_MALLOC), "clpwnam()",
- strlen(instroot) + strlen(PASSWD), "buf");
+ pkg_gt(ERR_MALLOC), "clpwnam()",
+ strlen(instroot) + strlen(PASSWD), "buf");
+ return (NULL);
}
- (void) sprintf(buf, "%s%s", instroot, PASSWD);
if ((pw_ptr = fopen(buf, "r")) == NULL) {
free(buf);
return (NULL);
@@ -675,13 +675,13 @@ clgrgid(gid_t gid)
FILE *gr_ptr;
if ((instroot = get_install_root()) != NULL) {
- if ((buf = (char *)malloc(strlen(instroot) +
- strlen(GROUP) + 1)) == NULL) {
+ if (asprintf(&buf, "%s%s", instroot, GROUP) < 0) {
(void) fprintf(stderr,
- pkg_gt(ERR_MALLOC), "clgrgid()",
- strlen(instroot) + strlen(GROUP), "buf");
+ pkg_gt(ERR_MALLOC), "clgrgid()",
+ strlen(instroot) + strlen(GROUP), "buf");
+ return (NULL);
}
- (void) sprintf(buf, "%s%s", instroot, GROUP);
+
if ((gr_ptr = fopen(buf, "r")) == NULL) {
free(buf);
return (NULL);
@@ -714,13 +714,11 @@ clpwuid(uid_t uid)
FILE *pw_ptr;
if ((instroot = get_install_root()) != NULL) {
- if ((buf = (char *)malloc(strlen(instroot) +
- strlen(PASSWD) + 1)) == NULL) {
- (void) fprintf(stderr,
- pkg_gt(ERR_MALLOC), "clpwuid()",
- strlen(instroot) + strlen(PASSWD), "buf");
+ if (asprintf(&buf, "%s%s", instroot, PASSWD) < 0) {
+ (void) fprintf(stderr, pkg_gt(ERR_MALLOC), "clpwuid()",
+ strlen(instroot) + strlen(PASSWD), "buf");
+ return (NULL);
}
- (void) sprintf(buf, "%s%s", instroot, PASSWD);
if ((pw_ptr = fopen(buf, "r")) == NULL) {
free(buf);
return (NULL);
diff --git a/usr/src/lib/libpkg/common/pkgerr.c b/usr/src/lib/libpkg/common/pkgerr.c
index eb0254055a..6828d88968 100644
--- a/usr/src/lib/libpkg/common/pkgerr.c
+++ b/usr/src/lib/libpkg/common/pkgerr.c
@@ -64,6 +64,7 @@ PKG_ERR
return (newerr);
}
+/*PRINTFLIKE3*/
void
pkgerr_add(PKG_ERR *err, PKG_ERR_CODE code, char *fmt, ...)
{
@@ -101,17 +102,6 @@ pkgerr_clear(PKG_ERR *err)
}
int
-pkgerr_dump(PKG_ERR *err, FILE *fp)
-{
- int i;
-
- for (i = 0; i < err->nerrs; i++) {
- (void) fprintf(fp, err->msgs[i]);
- }
- return (0);
-}
-
-int
pkgerr_num(PKG_ERR *err)
{
return (err->nerrs);
diff --git a/usr/src/lib/libpkg/common/pkgexecv.c b/usr/src/lib/libpkg/common/pkgexecv.c
index 28a7a07250..da703892db 100644
--- a/usr/src/lib/libpkg/common/pkgexecv.c
+++ b/usr/src/lib/libpkg/common/pkgexecv.c
@@ -40,6 +40,7 @@
#include <fcntl.h>
#include <pwd.h>
#include <grp.h>
+#include <note.h>
#include "pkglib.h"
#include "pkglibmsgs.h"
#include "pkglocale.h"
@@ -70,6 +71,7 @@ static int sig_received = 0;
static void
sig_trap(int a_signo)
{
+ _NOTE(ARGUNUSED(a_signo));
sig_received++;
}
@@ -252,7 +254,7 @@ pkgexecv(char *filein, char *fileout, char *uname, char *gname, char *arg[])
for (;;) {
status = 0;
- waitstat = waitpid(pid, (int *)&status, 0);
+ waitstat = waitpid(pid, &status, 0);
if (waitstat < 0) {
/* waitpid returned error */
if (errno == EAGAIN) {
@@ -293,8 +295,8 @@ pkgexecv(char *filein, char *fileout, char *uname, char *gname, char *arg[])
/* error if child process does not match */
if (waitstat != pid) {
- progerr(pkg_gt(ERR_WAIT_FAILED), pid, waitstat, status,
- errno, strerror(errno));
+ progerr(pkg_gt(ERR_WAIT_FAILED), pid, status,
+ errno, strerror(errno));
return (-1);
}
diff --git a/usr/src/lib/libpkg/common/pkglib.h b/usr/src/lib/libpkg/common/pkglib.h
index 04b17730ca..4e4bdabf91 100644
--- a/usr/src/lib/libpkg/common/pkglib.h
+++ b/usr/src/lib/libpkg/common/pkglib.h
@@ -403,8 +403,6 @@ struct dstr {
#define streq(a, b) (strcmp((a), (b)) == 0)
#define strneq(a, b, c) (strncmp((a), (b), (c)) == 0)
-#ifdef __STDC__
-
extern FILE *epopen(char *cmd, char *mode);
extern char **gpkglist(char *dir, char **pkg, char **catg);
extern int is_not_valid_length(char **category);
@@ -496,7 +494,7 @@ extern void checksum_off(void);
extern void checksum_on(void);
extern void cvtpath(char *path, char *copy);
extern void ds_order(char *list[]);
-extern void ds_putinfo(char *buf);
+extern void ds_putinfo(char *buf, size_t);
extern void ds_skiptoend(char *device);
extern void ecleanup(void);
/*PRINTFLIKE1*/
@@ -587,104 +585,6 @@ extern start_mode_t pkgservergetmode(void);
extern start_mode_t pkgparsemode(const char *);
extern char *pkgmodeargument(start_mode_t);
-
-#else /* __STDC__ */
-
-extern FILE *epopen();
-extern void pkglist_cont();
-extern char **gpkglist();
-extern char **pkgalias();
-extern char *get_prog_name();
-extern char *set_prog_name();
-extern int averify();
-extern int ckparam();
-extern int ckvolseq();
-extern int cverify();
-extern unsigned long compute_checksum();
-extern int fverify();
-extern char *getErrbufAddr();
-extern int getErrbufSize();
-extern char *getErrstr();
-extern void setErrstr();
-extern int devtype();
-extern int ds_close();
-extern int ds_findpkg();
-extern int ds_getinfo();
-extern int ds_getpkg();
-extern int ds_ginit();
-extern boolean_t ds_fd_open();
-extern int ds_init();
-extern int ds_next();
-extern int ds_readbuf();
-extern int epclose();
-extern int esystem();
-extern int e_ExecCmdArray();
-extern int e_ExecCmdList();
-extern int gpkgmap();
-extern int isFdRemote();
-extern int isFstypeRemote();
-extern int isPathRemote();
-extern int iscpio();
-extern int isdir();
-extern int isfile();
-extern int pkgexecl();
-extern int pkgexecv();
-extern int pkghead();
-extern int pkgmount();
-extern int pkgtrans();
-extern int pkgumount();
-extern int ppkgmap();
-extern int putcfile();
-extern int putcvfpfile();
-extern int rrmdir();
-extern int srchcfile();
-extern struct group *cgrgid();
-extern struct group *cgrnam();
-extern struct passwd *cpwnam();
-extern struct passwd *cpwuid();
-extern void basepath();
-extern void canonize();
-extern void canonize_slashes();
-extern void checksum_off();
-extern void checksum_on();
-extern void cvtpath();
-extern void ds_order();
-extern void ds_putinfo();
-extern void ds_skiptoend();
-extern void ecleanup();
-extern void logerr();
-extern int mappath();
-extern int mapvar();
-extern void progerr();
-extern void rpterr();
-extern void tputcfent();
-extern void set_nonABI_symlinks();
-extern int nonABI_symlinks();
-extern void disable_attribute_check();
-extern int get_disable_attribute_check();
-/* vfpops.c */
-extern int vfpCheckpointFile();
-extern int vfpCheckpointOpen();
-extern int vfpClearModified();
-extern int vfpClose();
-extern int vfpGetModified();
-extern int vfpOpen();
-extern void vfpRewind();
-extern int vfpSetFlags();
-extern int vfpSetModified();
-extern int vfpSetSize();
-extern void vfpTruncate();
-extern int vfpWriteToFile();
-
-/* handlelocalfs.c */
-boolean_t enable_local_fs();
-boolean_t restore_local_fs();
-
-/* gpkgmap.c */
-int getmapmode(void);
-
-#endif /* __STDC__ */
-
#ifdef __cplusplus
}
#endif
diff --git a/usr/src/lib/libpkg/common/pkglibmsgs.h b/usr/src/lib/libpkg/common/pkglibmsgs.h
index cf77b0f57a..4b811ca6ae 100644
--- a/usr/src/lib/libpkg/common/pkglibmsgs.h
+++ b/usr/src/lib/libpkg/common/pkglibmsgs.h
@@ -209,7 +209,7 @@ extern "C" {
#define MSG_KEYSTORE_UNKNOWN "Unknown"
/* parameter errors */
-#define ERR_LEN "length of parameter value <%s> exceeds limit"
+#define ERR_LEN "length of parameter <%s> value exceeds limit"
#define ERR_ASCII "parameter <%s> must be ascii"
#define ERR_ALNUM "parameter <%s> must be alphanumeric"
#define ERR_CHAR "parameter <%s> has incorrect first character"
@@ -235,7 +235,8 @@ extern "C" {
#define MSG_PKGNAME "- invalid package name in datastream table-of-contents"
#define MSG_NOPKG "- package <%s> not in datastream"
#define MSG_STATFS "- unable to stat filesystem, errno=%d"
-#define MSG_NOSPACE "- not enough space, %d blocks required, %d available"
+#define MSG_NOSPACE "- not enough space, %ld blocks required, "\
+ "%lld available"
/* pkglist errors */
#define ERR_MEMORY "memory allocation failure, errno=%d"
@@ -271,7 +272,7 @@ extern "C" {
#define LABEL3 "Insert %%v into %%p."
/* package verify errors */
-#define MSG_WLDDEVNO "NOTE: <%s> created as device (%d, %d)."
+#define MSG_WLDDEVNO "NOTE: <%s> created as device (%ld, %ld)."
#define WRN_QV_SIZE "WARNING: quick verify of <%s>; wrong size."
#define WRN_QV_MTIME "WARNING: quick verify of <%s>; wrong mod time."
@@ -288,8 +289,9 @@ extern "C" {
#define ERR_CKSUM "file cksum <%ld> expected <%ld> actual"
#define ERR_NO_CKSUM "unable to checksum, may need to re-run command as " \
"user \"root\""
-#define ERR_MAJMIN "major/minor device <%d, %d> expected <%d, %d> actual"
-#define ERR_PERM "permissions <%04o> expected <%04o> actual"
+#define ERR_MAJMIN "major/minor device <%ld, %ld> " \
+ "expected <%ld, %ld> actual"
+#define ERR_PERM "permissions <%04lo> expected <%04lo> actual"
#define ERR_GROUP "group name <%s> expected <%s> actual"
#define ERR_OWNER "owner name <%s> expected <%s> actual"
#define ERR_MODFAIL "unable to fix modification time"
@@ -325,8 +327,8 @@ extern "C" {
#define ERR_TOO_MANY_ARGS "too many arguments passed to pkgexecl " \
"for command <%s>"
-#define ERR_WAIT_FAILED "wait for process %ld failed, pid <%ld> status " \
- "<0x%08lx> errno <%d> (%s)"
+#define ERR_WAIT_FAILED "wait for process %ld failed, status " \
+ "<0x%08x> errno <%d> (%s)"
#define ERR_FORK_FAILED "fork() failed errno=%d (%s)"
#define ERR_FREOPEN "freopen(%s, \"%s\", %s) failed, errno=%d (%s)"
#define ERR_FDOPEN "fdopen(%d, \"%s\") failed, errno=%d (%s)"
diff --git a/usr/src/lib/libpkg/common/pkgmount.c b/usr/src/lib/libpkg/common/pkgmount.c
index e3c560ec70..1b64f0adc5 100644
--- a/usr/src/lib/libpkg/common/pkgmount.c
+++ b/usr/src/lib/libpkg/common/pkgmount.c
@@ -43,7 +43,6 @@
#include "pkglibmsgs.h"
#include "pkglocale.h"
-extern void quit(int retcode); /* Expected to be declared by caller! */
/* libadm.a */
extern int getvol(char *device, char *label, int options, char *prompt);
@@ -63,16 +62,16 @@ pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts, int getvolflg)
if (part && nparts) {
if (pkg) {
- (void) sprintf(prompt, pkg_gt(LABEL0), part,
- nparts, pkg);
+ (void) snprintf(prompt, sizeof (prompt),
+ pkg_gt(LABEL0), part, nparts, pkg);
} else {
- (void) sprintf(prompt, pkg_gt(LABEL1), part,
- nparts);
+ (void) snprintf(prompt, sizeof (prompt),
+ pkg_gt(LABEL1), part, nparts);
}
} else if (pkg)
- (void) sprintf(prompt, pkg_gt(LABEL2), pkg);
+ (void) snprintf(prompt, sizeof (prompt), pkg_gt(LABEL2), pkg);
else
- (void) sprintf(prompt, pkg_gt(LABEL3));
+ (void) snprintf(prompt, sizeof (prompt), pkg_gt(LABEL3));
n = 0;
for (;;) {
@@ -96,7 +95,8 @@ pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts, int getvolflg)
}
if (devp->fstyp == NULL) {
- (void) sprintf(cmd, "%s %s", FSTYP, devp->bdevice);
+ (void) snprintf(cmd, sizeof (cmd),
+ "%s %s", FSTYP, devp->bdevice);
if ((pp = epopen(cmd, "r")) == NULL) {
rpterr();
logerr(pkg_gt(ERR_FSTYP), devp->bdevice);
@@ -158,7 +158,7 @@ pkgumount(struct pkgdev *devp)
if (n != 0) {
progerr(pkg_gt("retrying umount of %s"),
devp->bdevice);
- sleep(5);
+ (void) sleep(5);
}
}
if (n == 0)
diff --git a/usr/src/lib/libpkg/common/pkgserv.c b/usr/src/lib/libpkg/common/pkgserv.c
index 176600e7b3..785f275dfc 100644
--- a/usr/src/lib/libpkg/common/pkgserv.c
+++ b/usr/src/lib/libpkg/common/pkgserv.c
@@ -358,7 +358,7 @@ openserver:
assert(args <= sizeof (cmd)/sizeof (char *));
if (posix_spawn(&pid, PKGSERV_PATH, NULL, NULL, cmd, environ) == 0) {
- server->onetime |= mode == RUN_ONCE;
+ server->onetime |= (mode == RUN_ONCE);
while (wait4(pid, &stat, 0, NULL) != -1) {
if (WIFEXITED(stat)) {
int s = WEXITSTATUS(stat);
@@ -434,6 +434,7 @@ pkgmodeargument(start_mode_t mode)
}
progerr(gettext("Bad pkgserv mode: %d"), (int)mode);
exit(99);
+ /*NOTREACHED*/
}
void
diff --git a/usr/src/lib/libpkg/common/pkgtrans.c b/usr/src/lib/libpkg/common/pkgtrans.c
index dbaaa73adf..a717360580 100644
--- a/usr/src/lib/libpkg/common/pkgtrans.c
+++ b/usr/src/lib/libpkg/common/pkgtrans.c
@@ -51,6 +51,7 @@
#include <openssl/pkcs7.h>
#include <openssl/err.h>
#include <openssl/pem.h>
+#include <note.h>
#include "pkginfo.h"
#include "pkgstrct.h"
#include "pkgtrans.h"
@@ -114,7 +115,7 @@ static int ckoverwrite(char *dir, char *inst, int options);
static int pkgxfer(char *srcinst, int options);
static int wdsheader(struct dm_buf *, char *src, char *device,
char **pkg, PKCS7 *);
-static struct dm_buf *genheader(char *, char *, char **);
+static struct dm_buf *genheader(char *, char **);
static int dump_hdr_and_pkgs(BIO *, struct dm_buf *, char **);
@@ -286,7 +287,7 @@ _pkgtrans(char *device1, char *device2, char **pkg, int options,
/* initialize PKCS7 object to be filled in later */
sec_pkcs7 = PKCS7_new();
- PKCS7_set_type(sec_pkcs7, NID_pkcs7_signed);
+ (void) PKCS7_set_type(sec_pkcs7, NID_pkcs7_signed);
sec_signerinfo = PKCS7_add_signature(sec_pkcs7,
pubcert, privkey, EVP_sha1());
@@ -298,7 +299,7 @@ _pkgtrans(char *device1, char *device2, char **pkg, int options,
}
/* add signer cert into signature */
- PKCS7_add_certificate(sec_pkcs7, pubcert);
+ (void) PKCS7_add_certificate(sec_pkcs7, pubcert);
/* attempt to resolve cert chain starting at the signer cert */
if (get_cert_chain(err, pubcert, clcerts, cacerts,
@@ -314,7 +315,7 @@ _pkgtrans(char *device1, char *device2, char **pkg, int options,
* since it's baked in already, so skip it
*/
for (i = 1; i < sk_X509_num(sec_chain); i++) {
- PKCS7_add_certificate(sec_pkcs7,
+ (void) PKCS7_add_certificate(sec_pkcs7,
sk_X509_value(sec_chain, i));
}
@@ -526,14 +527,14 @@ _pkgtrans(char *device1, char *device2, char **pkg, int options,
logerr(pkg_gt(MSG_GETVOL));
return (1);
}
- if ((hdr = genheader(src, ods_name, pkg)) == NULL) {
+ if ((hdr = genheader(src, pkg)) == NULL) {
cleanup();
return (1);
}
if (making_sig) {
/* start up signature data stream */
- PKCS7_content_new(sec_pkcs7, NID_pkcs7_data);
- PKCS7_set_detached(sec_pkcs7, 1);
+ (void) PKCS7_content_new(sec_pkcs7, NID_pkcs7_data);
+ (void) PKCS7_set_detached(sec_pkcs7, 1);
p7_bio = PKCS7_dataInit(sec_pkcs7, NULL);
/*
@@ -568,7 +569,7 @@ _pkgtrans(char *device1, char *device2, char **pkg, int options,
return (1);
}
- BIO_free(p7_bio);
+ (void) BIO_free(p7_bio);
}
/* write out header to stream, which includes signature */
@@ -767,13 +768,14 @@ cat_and_count(struct dm_buf *buf_ctrl, char *append)
}
static struct dm_buf *
-genheader(char *src, char *device, char **pkg)
+genheader(char *src, char **pkg)
{
FILE *fp;
char path[MAXPATHLEN], tmp_entry[ENTRY_MAX];
int i, n, nparts, maxpsize;
- int partcnt, totsize;
+ int partcnt;
+ long totsize;
struct stat statbuf;
if ((hdrbuf.text_buffer = (char *)malloc(BLK_SIZE)) == NULL) {
@@ -841,7 +843,8 @@ genheader(char *src, char *device, char **pkg)
if (dstdev.capacity && maxpsize > dstdev.capacity) {
progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_NOSPACE));
+ logerr(pkg_gt(MSG_NOSPACE), (long)maxpsize,
+ dstdev.capacity);
(void) fclose(fp);
ecleanup();
return (NULL);
@@ -867,15 +870,6 @@ genheader(char *src, char *device, char **pkg)
totsize += nparts * maxpsize;
if (dstdev.capacity && dstdev.capacity < totsize) {
int lastpartcnt = 0;
-#if 0
- if (i != 0) {
- progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_NOSPACE));
- (void) fclose(fp);
- ecleanup();
- return (NULL);
- }
-#endif /* 0 */
if (totsize)
totsize -= nparts * maxpsize;
@@ -969,7 +963,7 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
*/
for (block_cnt = 0; block_cnt < hdr->allocation;
block_cnt += BLK_SIZE) {
- write(ds_fd, (hdr->text_buffer + block_cnt), BLK_SIZE);
+ (void) write(ds_fd, (hdr->text_buffer + block_cnt), BLK_SIZE);
}
/*
@@ -978,9 +972,9 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
* for all packages
*/
(void) tmpnam(tmp_file); /* temporary file name */
- if ((list_fd = open(tmp_file, O_RDWR | O_CREAT)) == -1) {
+ if ((list_fd = open(tmp_file, O_RDWR | O_CREAT, 0644)) == -1) {
progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_NOTMPFIL));
+ logerr(pkg_gt(MSG_NOTMPFIL), tmp_file);
return (1);
}
@@ -1004,7 +998,7 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
if (write(list_fd, tmp_entry,
entry_size) != entry_size) {
progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_NOTMPFIL));
+ logerr(pkg_gt(MSG_NOTMPFIL), tmp_file);
(void) close(list_fd);
ecleanup();
return (1);
@@ -1045,20 +1039,22 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
cleanup();
return (1);
}
- PEM_write_PKCS7(fp, sig);
+ (void) PEM_write_PKCS7(fp, sig);
(void) fclose(fp);
for (i = 0; pkg[i]; i++) {
- sprintf(path, "%s/%s", tmpsymdir, pkg[i]);
+ (void) snprintf(path, sizeof (path),
+ "%s/%s", tmpsymdir, pkg[i]);
if (mkdir(path, 0755)) {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_MKDIR), path);
cleanup();
return (1);
}
- sprintf(path, "%s/%s/%s", tmpsymdir,
- pkg[i], PKGINFO);
- sprintf(srcpath, "%s/%s/%s", src, pkg[i], PKGINFO);
+ (void) snprintf(path, sizeof (path),
+ "%s/%s/%s", tmpsymdir, pkg[i], PKGINFO);
+ (void) snprintf(srcpath, sizeof (srcpath),
+ "%s/%s/%s", src, pkg[i], PKGINFO);
if (symlink(srcpath, path) != 0) {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_SYMLINK), path, srcpath);
@@ -1066,9 +1062,10 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
return (1);
}
- sprintf(path, "%s/%s/%s", tmpsymdir,
- pkg[i], PKGMAP);
- sprintf(srcpath, "%s/%s/%s", src, pkg[i], PKGMAP);
+ (void) snprintf(path, sizeof (path),
+ "%s/%s/%s", tmpsymdir, pkg[i], PKGMAP);
+ (void) snprintf(srcpath, sizeof (srcpath),
+ "%s/%s/%s", src, pkg[i], PKGMAP);
if (symlink(srcpath, path) != 0) {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_SYMLINK), path, srcpath);
@@ -1081,14 +1078,14 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
* temporary string allowing for the first line
* as a special case.
*/
- entry_size = sprintf(tmp_entry,
+ entry_size = snprintf(tmp_entry, sizeof (tmp_entry),
(i == 0) ? "%s/%s\n%s/%s" : "\n%s/%s\n%s/%s",
pkg[i], PKGINFO, pkg[i], PKGMAP);
if (write(list_fd, tmp_entry,
entry_size) != entry_size) {
progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_NOTMPFIL));
+ logerr(pkg_gt(MSG_NOTMPFIL), tmp_file);
(void) close(list_fd);
ecleanup();
cleanup();
@@ -1097,7 +1094,8 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
}
/* add signature to list of files */
- entry_size = sprintf(tmp_entry, "\n%s", SIGNATURE_FILENAME);
+ entry_size = snprintf(tmp_entry, sizeof (tmp_entry), "\n%s",
+ SIGNATURE_FILENAME);
if (write(list_fd, tmp_entry, entry_size) != entry_size) {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_NOTMPFIL), tmp_file);
@@ -1111,26 +1109,16 @@ wdsheader(struct dm_buf *hdr, char *src, char *device, char **pkg, PKCS7 *sig)
(void) lseek(list_fd, 0, SEEK_SET);
if (!making_sig) {
-#ifndef SUNOS41
- (void) sprintf(tmp_entry, "%s -ocD -C %d",
- CPIOPROC, (int)BLK_SIZE);
-#else
- (void) sprintf(tmp_entry, "%s -oc -C %d",
- CPIOPROC, (int)BLK_SIZE);
-#endif
+ (void) snprintf(tmp_entry, sizeof (tmp_entry),
+ "%s -ocD -C %d", CPIOPROC, (int)BLK_SIZE);
} else {
/*
* when making a signature, we must make sure to follow
* symlinks during the cpio so that we don't archive
* the links themselves
*/
-#ifndef SUNOS41
- (void) sprintf(tmp_entry, "%s -ocDL -C %d",
- CPIOPROC, (int)BLK_SIZE);
-#else
- (void) sprintf(tmp_entry, "%s -ocL -C %d",
- CPIOPROC, (int)BLK_SIZE);
-#endif
+ (void) snprintf(tmp_entry, sizeof (tmp_entry),
+ "%s -ocDL -C %d", CPIOPROC, (int)BLK_SIZE);
}
if (making_sig) {
@@ -1180,7 +1168,7 @@ ckoverwrite(char *dir, char *inst, int options)
{
char path[PATH_MAX];
- (void) sprintf(path, "%s/%s", dir, inst);
+ (void) snprintf(path, sizeof (path), "%s/%s", dir, inst);
if (access(path, 0) == 0) {
if (options & PT_OVERWRITE)
return (rrmdir(path));
@@ -1223,11 +1211,12 @@ pkgxfer(char *srcinst, int options)
if (!(options & PT_SILENT))
(void) fprintf(stderr, pkg_gt(MSG_TRANSFER), srcinst);
- (void) strcpy(dstinst, srcinst);
+ (void) strlcpy(dstinst, srcinst, sizeof (dstinst));
if (!(options & PT_ODTSTREAM)) {
/* destination is a (possibly mounted) directory */
- (void) sprintf(dstdir, "%s/%s", dst, dstinst);
+ (void) snprintf(dstdir, sizeof (dstdir),
+ "%s/%s", dst, dstinst);
/*
* need to check destination directory to assure
@@ -1244,10 +1233,10 @@ pkgxfer(char *srcinst, int options)
}
pkgdir = dst;
- (void) strcpy(temp, srcinst);
+ (void) strlcpy(temp, srcinst, sizeof (temp));
if (pt = strchr(temp, '.'))
*pt = '\0';
- (void) strcat(temp, ".*");
+ (void) strlcat(temp, ".*", sizeof (temp));
if (pt = fpkginst(temp, info.arch, info.version)) {
/*
@@ -1255,8 +1244,9 @@ pkgxfer(char *srcinst, int options)
* its pkgid might be different
*/
if (options & PT_OVERWRITE) {
- (void) strcpy(dstinst, pt);
- (void) sprintf(dstdir, "%s/%s", dst, dstinst);
+ (void) strlcpy(dstinst, pt, sizeof (dstinst));
+ (void) snprintf(dstdir, sizeof (dstdir),
+ "%s/%s", dst, dstinst);
} else {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_DUPVERS), srcinst);
@@ -1273,8 +1263,10 @@ pkgxfer(char *srcinst, int options)
if (pt = strchr(temp, '.'))
*pt = '\0';
for (i = 2; (access(dstdir, 0) == 0); i++) {
- (void) sprintf(dstinst, "%s.%d", temp, i);
- (void) sprintf(dstdir, "%s/%s", dst, dstinst);
+ (void) snprintf(dstinst, sizeof (dstinst),
+ "%s.%d", temp, i);
+ (void) snprintf(dstdir, sizeof (dstdir),
+ "%s/%s", dst, dstinst);
}
} else if (options & PT_OVERWRITE) {
/*
@@ -1300,7 +1292,8 @@ pkgxfer(char *srcinst, int options)
return (1);
}
- (void) sprintf(srcdir, "%s/%s", src, srcinst);
+ (void) snprintf(srcdir, sizeof (srcdir),
+ "%s/%s", src, srcinst);
if (stat(srcdir, &srcstat) != -1) {
if (chmod(dstdir, (srcstat.st_mode & S_IAMB)) == -1) {
progerr(pkg_gt(ERR_TRANSFER));
@@ -1317,7 +1310,7 @@ pkgxfer(char *srcinst, int options)
if (!(options & PT_SILENT) && strcmp(dstinst, srcinst))
(void) fprintf(stderr, pkg_gt(MSG_RENAME), dstinst);
- (void) sprintf(srcdir, "%s/%s", src, srcinst);
+ (void) snprintf(srcdir, sizeof (srcdir), "%s/%s", src, srcinst);
if (chdir(srcdir)) {
progerr(pkg_gt(ERR_TRANSFER));
logerr(pkg_gt(MSG_CHDIR), srcdir);
@@ -1328,7 +1321,8 @@ pkgxfer(char *srcinst, int options)
/*
* transfer pkginfo & pkgmap first
*/
- (void) sprintf(cmd, "%s -pudm %s", CPIOPROC, dstdir);
+ (void) snprintf(cmd, sizeof (cmd),
+ "%s -pudm %s", CPIOPROC, dstdir);
if ((pp = epopen(cmd, "w")) == NULL) {
rpterr();
progerr(pkg_gt(ERR_TRANSFER));
@@ -1337,11 +1331,11 @@ pkgxfer(char *srcinst, int options)
}
(void) fprintf(pp, "%s\n%s\n", PKGINFO, PKGMAP);
- sighold(SIGINT);
- sighold(SIGHUP);
+ (void) sighold(SIGINT);
+ (void) sighold(SIGHUP);
r = epclose(pp);
- sigrelse(SIGINT);
- sigrelse(SIGHUP);
+ (void) sigrelse(SIGINT);
+ (void) sigrelse(SIGHUP);
if (r != 0) {
rpterr();
@@ -1415,11 +1409,11 @@ pkgxfer(char *srcinst, int options)
}
(void) fprintf(pp, "pkginfo");
- sighold(SIGINT);
- sighold(SIGHUP);
+ (void) sighold(SIGINT);
+ (void) sighold(SIGHUP);
r = epclose(pp);
- sigrelse(SIGINT);
- sigrelse(SIGHUP);
+ (void) sigrelse(SIGINT);
+ (void) sigrelse(SIGHUP);
if (r != 0) {
rpterr();
@@ -1467,10 +1461,12 @@ pkgxfer(char *srcinst, int options)
char line[128];
(void) mgets(line, 128);
curpartcnt = -1;
- if (sscanf(line, "%s %d %d %[ 0-9]", &pkgname, &nparts,
+ /* LINTED E_SEC_SCANF_UNBOUNDED_COPY */
+ if (sscanf(line, "%s %d %d %[ 0-9]", pkgname, &nparts,
&maxpartsize, volnos) == 4) {
- sscanf(volnos, "%d %[ 0-9]", &curpartcnt, tmpvol);
- strcpy(volnos, tmpvol);
+ (void) sscanf(volnos,
+ "%d %[ 0-9]", &curpartcnt, tmpvol);
+ (void) strlcpy(volnos, tmpvol, sizeof (volnos));
}
}
@@ -1500,7 +1496,7 @@ pkgxfer(char *srcinst, int options)
}
(void) sscanf(volnos, "%d %[ 0-9]", &index, tmpvol);
- (void) strcpy(volnos, tmpvol);
+ (void) strlcpy(volnos, tmpvol, sizeof (volnos));
curpartcnt += index;
}
@@ -1508,59 +1504,61 @@ pkgxfer(char *srcinst, int options)
nparts = 0;
if (part == 1) {
- (void) sprintf(cmd, "find %s %s", PKGINFO, PKGMAP);
+ (void) snprintf(cmd, sizeof (cmd),
+ "find %s %s", PKGINFO, PKGMAP);
if (nparts && (isdir(INSTALL) == 0)) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, INSTALL);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, INSTALL, sizeof (cmd));
}
} else
- (void) sprintf(cmd, "find %s", PKGINFO);
+ (void) snprintf(cmd, sizeof (cmd), "find %s", PKGINFO);
if (nparts > 1) {
- (void) sprintf(temp, "%s.%d", RELOC, part);
+ (void) snprintf(temp, sizeof (temp),
+ "%s.%d", RELOC, part);
if (iscpio(temp, &iscomp) || isdir(temp) == 0) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, temp);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, temp, sizeof (cmd));
}
- (void) sprintf(temp, "%s.%d", ROOT, part);
+ (void) snprintf(temp, sizeof (temp),
+ "%s.%d", ROOT, part);
if (iscpio(temp, &iscomp) || isdir(temp) == 0) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, temp);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, temp, sizeof (cmd));
}
- (void) sprintf(temp, "%s.%d", ARCHIVE, part);
+ (void) snprintf(temp, sizeof (temp),
+ "%s.%d", ARCHIVE, part);
if (isdir(temp) == 0) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, temp);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, temp, sizeof (cmd));
}
} else if (nparts) {
for (i = 0; reloc_names[i] != NULL; i++) {
if (iscpio(reloc_names[i], &iscomp) ||
isdir(reloc_names[i]) == 0) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, reloc_names[i]);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, reloc_names[i],
+ sizeof (cmd));
}
}
for (i = 0; root_names[i] != NULL; i++) {
if (iscpio(root_names[i], &iscomp) ||
isdir(root_names[i]) == 0) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, root_names[i]);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, root_names[i],
+ sizeof (cmd));
}
}
if (isdir(ARCHIVE) == 0) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, ARCHIVE);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, ARCHIVE, sizeof (cmd));
}
}
if (options & PT_ODTSTREAM) {
-#ifndef SUNOS41
- (void) sprintf(cmd+strlen(cmd),
+ (void) snprintf(cmd + strlen(cmd),
+ sizeof (cmd) - strlen(cmd),
" -print | %s -ocD -C %d",
-#else
- (void) sprintf(cmd+strlen(cmd),
- " -print | %s -oc -C %d",
-#endif
- CPIOPROC, (int)BLK_SIZE);
+ CPIOPROC, (int)BLK_SIZE);
} else {
if (statvfs64(dstdir, &svfsb) == -1) {
progerr(pkg_gt(ERR_TRANSFER));
@@ -1575,11 +1573,16 @@ pkgxfer(char *srcinst, int options)
if ((has_comp_size ? compressedsize : maxpartsize) >
free_blocks) {
progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_NOSPACE));
+ logerr(pkg_gt(MSG_NOSPACE),
+ has_comp_size ?
+ (long)compressedsize : (long)maxpartsize,
+ free_blocks);
return (1);
}
- (void) sprintf(cmd+strlen(cmd), " -print | %s -pdum %s",
- CPIOPROC, dstdir);
+ (void) snprintf(cmd + strlen(cmd),
+ sizeof (cmd) - strlen(cmd),
+ " -print | %s -pdum %s",
+ CPIOPROC, dstdir);
}
n = esystem(cmd, -1, (options & PT_ODTSTREAM) ? ds_fd : -1);
@@ -1604,14 +1607,14 @@ pkgxfer(char *srcinst, int options)
return (n);
if (chdir(srcdir)) {
progerr(pkg_gt(ERR_TRANSFER));
- logerr(pkg_gt(MSG_CORRUPT), srcdir);
+ logerr(pkg_gt(MSG_CORRUPT));
(void) chdir("/");
- pkgumount(&srcdev);
+ (void) pkgumount(&srcdev);
continue;
}
if (ckvolseq(srcdir, part, nparts)) {
(void) chdir("/");
- pkgumount(&srcdev);
+ (void) pkgumount(&srcdev);
continue;
}
break;
@@ -1667,7 +1670,7 @@ pkgxfer(char *srcinst, int options)
(void) sscanf(volnos, "%d %[ 0-9]", &index,
tmpvol);
- (void) strcpy(volnos, tmpvol);
+ (void) strlcpy(volnos, tmpvol, sizeof (volnos));
curpartcnt += index;
}
}
@@ -1738,8 +1741,8 @@ pkgdump(char *srcinst, BIO *bio)
(void) snprintf(cmd, CMDSIZE, "find %s %s",
PKGINFO, PKGMAP);
if (nparts && (isdir(INSTALL) == 0)) {
- (void) strcat(cmd, " ");
- (void) strcat(cmd, INSTALL);
+ (void) strlcat(cmd, " ", sizeof (cmd));
+ (void) strlcat(cmd, INSTALL, sizeof (cmd));
}
} else
(void) snprintf(cmd, CMDSIZE, "find %s", PKGINFO);
@@ -1784,14 +1787,10 @@ pkgdump(char *srcinst, BIO *bio)
}
}
-#ifndef SUNOS41
- (void) sprintf(cmd+strlen(cmd),
+ (void) snprintf(cmd + strlen(cmd),
+ sizeof (cmd) - strlen(cmd),
" -print | %s -ocD -C %d",
-#else
- (void) sprintf(cmd+strlen(cmd),
- " -print | %s -oc -C %d",
-#endif
- CPIOPROC, (int)BLK_SIZE);
+ CPIOPROC, (int)BLK_SIZE);
/*
* execute the command, dumping all standard output
* to the BIO.
@@ -1812,37 +1811,38 @@ pkgdump(char *srcinst, BIO *bio)
static void
sigtrap(int signo)
{
+ _NOTE(ARGUNUSED(signo));
signal_received++;
}
static void
cleanup(void)
{
- chdir("/");
+ (void) chdir("/");
if (tmpdir) {
- rrmdir(tmpdir);
+ (void) rrmdir(tmpdir);
free(tmpdir);
tmpdir = NULL;
}
if (tmppath) {
/* remove any previous tmppath stuff */
- rrmdir(tmppath);
+ (void) rrmdir(tmppath);
free(tmppath);
tmppath = NULL;
}
if (tmpsymdir) {
/* remove temp symbolic links made for signed pkg */
- rrmdir(tmpsymdir);
+ (void) rrmdir(tmpsymdir);
free(tmpsymdir);
tmpsymdir = NULL;
}
if (srcdev.mount && !ids_name)
- pkgumount(&srcdev);
+ (void) pkgumount(&srcdev);
if (dstdev.mount && !ods_name)
- pkgumount(&dstdev);
+ (void) pkgumount(&dstdev);
(void) ds_close(1);
}
@@ -1871,7 +1871,7 @@ dump_hdr_and_pkgs(BIO *bio, struct dm_buf *hdr, char **pkglist)
/* write out the header to the signature stream */
for (block_cnt = 0; block_cnt < hdr->allocation;
block_cnt += BLK_SIZE) {
- BIO_write(bio, (hdr->text_buffer + block_cnt), BLK_SIZE);
+ (void) BIO_write(bio, (hdr->text_buffer + block_cnt), BLK_SIZE);
}
/* save current directory */
@@ -1941,11 +1941,11 @@ BIO_dump_cmd(char *cmd, BIO *bio)
/* read output in chunks, transfer to BIO */
while (fread(buf, BLK_SIZE, 1, fp) == 1) {
if (BIO_write(bio, buf, BLK_SIZE) != BLK_SIZE) {
- sighold(SIGINT);
- sighold(SIGHUP);
+ (void) sighold(SIGINT);
+ (void) sighold(SIGHUP);
(void) epclose(fp);
- sigrelse(SIGINT);
- sigrelse(SIGHUP);
+ (void) sigrelse(SIGINT);
+ (void) sigrelse(SIGHUP);
rpterr();
return (1);
}
@@ -1959,11 +1959,11 @@ BIO_dump_cmd(char *cmd, BIO *bio)
}
/* done, close stream, report any errors */
- sighold(SIGINT);
- sighold(SIGHUP);
+ (void) sighold(SIGINT);
+ (void) sighold(SIGHUP);
rc = epclose(fp);
- sigrelse(SIGINT);
- sigrelse(SIGHUP);
+ (void) sigrelse(SIGINT);
+ (void) sigrelse(SIGHUP);
if (rc != 0) {
rpterr();
return (1);
diff --git a/usr/src/lib/libpkg/common/pkgweb.c b/usr/src/lib/libpkg/common/pkgweb.c
index 56559a0953..bcda3e53f2 100644
--- a/usr/src/lib/libpkg/common/pkgweb.c
+++ b/usr/src/lib/libpkg/common/pkgweb.c
@@ -617,6 +617,7 @@ cleanup:
*
* Returns : none
*/
+/*PRINTFLIKE2*/
void
echo_out(int nointeract, char *fmt, ...)
{
@@ -941,6 +942,7 @@ validate_signature(PKG_ERR *err, char *name, BIO *indata, PKCS7 *p7,
/* some other error. print them all. */
while ((errcode = ERR_get_error_line_data(NULL,
NULL, &err_data, &err_flags)) != 0) {
+ size_t errsz;
err_reason =
ERR_reason_error_string(errcode);
if (err_reason == NULL) {
@@ -952,11 +954,11 @@ validate_signature(PKG_ERR *err, char *name, BIO *indata, PKCS7 *p7,
err_data =
gettext(ERR_SIG_INT);
}
- err_string =
- xmalloc(strlen(err_reason) +
- strlen(err_data) + 3);
- (void) sprintf(err_string, "%s: %s",
- err_reason, err_data);
+ errsz = strlen(err_reason) +
+ strlen(err_data) + 3;
+ err_string = xmalloc(errsz);
+ (void) snprintf(err_string, errsz,
+ "%s: %s", err_reason, err_data);
pkgerr_add(err, PKGERR_VERIFY,
gettext(ERR_VERIFY_SIG),
signer_sname, signer_iname,
@@ -1263,7 +1265,7 @@ ocsp_verify(PKG_ERR *err, X509 *cert, X509 *issuer,
}
/* add nonce */
- OCSP_request_add1_nonce(req, NULL, -1);
+ (void) OCSP_request_add1_nonce(req, NULL, -1);
/* connect to host, or proxy */
if (proxy != NULL) {
@@ -2823,7 +2825,7 @@ dequote(char *str)
}
/* remove first quote */
- memmove(str, str + 1, strlen(str) - 1);
+ (void) memmove(str, str + 1, strlen(str) - 1);
/*
* scan string looking for ending quote.
@@ -3022,7 +3024,7 @@ backoff()
initted = B_TRUE;
}
- backoff = drand48() * (double)cur_backoff;
+ backoff = (int)(drand48() * (double)cur_backoff);
(void) sleep(backoff);
if (cur_backoff < MAX_BACKOFF) {
/*
@@ -3157,7 +3159,7 @@ pkg_passphrase_cb(char *buf, int size, int rw, void *data)
*/
/* make a copy (getpassphrase overwrites) */
- strlcpy(passphrase_copy, passphrase,
+ (void) strlcpy(passphrase_copy, passphrase,
MAX_PHRASELEN + 1);
if (((passlen = snprintf(prompt_copy,
@@ -3233,6 +3235,6 @@ pkg_passphrase_cb(char *buf, int size, int rw, void *data)
return (-1);
}
- strlcpy(buf, passphrase, size);
+ (void) strlcpy(buf, passphrase, size);
return (strlen(buf));
}
diff --git a/usr/src/lib/libpkg/common/pkgxpand.c b/usr/src/lib/libpkg/common/pkgxpand.c
deleted file mode 100644
index 7f92aa8420..0000000000
--- a/usr/src/lib/libpkg/common/pkgxpand.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
-/* All Rights Reserved */
-
-
-
-#include <stdio.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include "pkglib.h"
-#include "pkglocale.h"
-
-extern char *fpkginst(char *pkg, ...); /* libadm.a */
-extern char *pkgdir; /* WHERE? */
-
-#define ispkgalias(p) (*p == '+')
-#define LSIZE 512
-#define MALSIZ 16
-
-char **
-pkgalias(char *pkg)
-{
- FILE *fp;
- char path[PATH_MAX], *pkginst;
- char *mypkg, *myarch, *myvers, **pkglist;
- char line[LSIZE];
- int n, errflg;
-
- pkglist = (char **)calloc(MALSIZ, sizeof (char *));
- if (pkglist == NULL)
- return ((char **)0);
-
- (void) sprintf(path, "%s/%s/pkgmap", pkgdir, pkg);
- if ((fp = fopen(path, "r")) == NULL)
- return ((char **)0);
-
- n = errflg = 0;
- while (fgets(line, LSIZE, fp)) {
- mypkg = strtok(line, " \t\n");
- myarch = strtok(NULL, "( \t\n)");
- myvers = strtok(NULL, "\n");
-
- (void) fpkginst(NULL);
- pkginst = fpkginst(mypkg, myarch, myvers);
- if (pkginst == NULL) {
- logerr(
- pkg_gt("no package instance for [%s]"), mypkg);
- errflg++;
- continue;
- }
- if (errflg)
- continue;
-
- pkglist[n] = strdup(pkginst);
- if ((++n % MALSIZ) == 0) {
- pkglist = (char **)realloc(pkglist,
- (n+MALSIZ)*sizeof (char *));
- if (pkglist == NULL)
- return ((char **)0);
- }
- }
- pkglist[n] = NULL;
-
- (void) fclose(fp);
- if (errflg) {
- while (n-- >= 0)
- free(pkglist[n]);
- free(pkglist);
- return ((char **)0);
- }
- return (pkglist);
-}
-
-#if 0
-char **
-pkgxpand(char *pkg[])
-{
- static int level = 0;
- char **pkglist;
- int i;
-
- if (++level >= 0)
- printf(pkg_gt("too deep"));
- for (i = 0; pkg[i]; i++) {
- if (ispkgalias(pkg[i])) {
- pkglist = pkgxpand(&pkg[i]);
- pkgexpand(pkglist);
- }
- }
-}
-#endif /* 0 */
diff --git a/usr/src/lib/libpkg/common/ppkgmap.c b/usr/src/lib/libpkg/common/ppkgmap.c
index 423def1bab..e84255202b 100644
--- a/usr/src/lib/libpkg/common/ppkgmap.c
+++ b/usr/src/lib/libpkg/common/ppkgmap.c
@@ -65,40 +65,20 @@ ppkgmap(struct cfent *ept, FILE *fp)
}
if (strchr("cb", ept->ftype)) {
-#ifdef SUNOS41
- if (ept->ainfo.xmajor == BADMAJOR) {
- if (fprintf(fp, " ?") < 0)
- return (-1);
- } else {
- if (fprintf(fp, " %d", ept->ainfo.xmajor) < 0)
- return (-1);
- }
-#else
if (ept->ainfo.major == BADMAJOR) {
if (fprintf(fp, " ?") < 0)
return (-1);
} else {
- if (fprintf(fp, " %d", ept->ainfo.major) < 0)
- return (-1);
- }
-#endif
-#ifdef SUNOS41
- if (ept->ainfo.xminor == BADMINOR) {
- if (fprintf(fp, " ?") < 0)
- return (-1);
- } else {
- if (fprintf(fp, " %d", ept->ainfo.xminor) < 0)
+ if (fprintf(fp, " %ld", ept->ainfo.major) < 0)
return (-1);
}
-#else
if (ept->ainfo.minor == BADMINOR) {
if (fprintf(fp, " ?") < 0)
return (-1);
} else {
- if (fprintf(fp, " %d", ept->ainfo.minor) < 0)
+ if (fprintf(fp, " %ld", ept->ainfo.minor) < 0)
return (-1);
}
-#endif
}
if (strchr("dxcbpfve", ept->ftype)) {
diff --git a/usr/src/lib/libpkg/common/progerr.c b/usr/src/lib/libpkg/common/progerr.c
index 8feaf4b81b..e239dd8bda 100644
--- a/usr/src/lib/libpkg/common/progerr.c
+++ b/usr/src/lib/libpkg/common/progerr.c
@@ -74,7 +74,7 @@ get_prog_name(void)
}
-/*VARARGS*/
+/*PRINTFLIKE1*/
void
progerr(char *fmt, ...)
{
diff --git a/usr/src/lib/libpkg/common/putcfile.c b/usr/src/lib/libpkg/common/putcfile.c
index 959f2684b8..a55528a1a4 100644
--- a/usr/src/lib/libpkg/common/putcfile.c
+++ b/usr/src/lib/libpkg/common/putcfile.c
@@ -103,7 +103,7 @@ putcfile(struct cfent *a_ept, FILE *a_fp)
return (-1);
}
} else {
- if (fprintf(a_fp, " %d", a_ept->ainfo.major) < 0)
+ if (fprintf(a_fp, " %ld", a_ept->ainfo.major) < 0)
return (-1);
}
@@ -116,7 +116,7 @@ putcfile(struct cfent *a_ept, FILE *a_fp)
return (-1);
}
} else {
- if (fprintf(a_fp, " %d", a_ept->ainfo.minor) < 0)
+ if (fprintf(a_fp, " %ld", a_ept->ainfo.minor) < 0)
return (-1);
}
}
diff --git a/usr/src/lib/libpkg/common/runcmd.c b/usr/src/lib/libpkg/common/runcmd.c
index 945673737e..3be8d36ee2 100644
--- a/usr/src/lib/libpkg/common/runcmd.c
+++ b/usr/src/lib/libpkg/common/runcmd.c
@@ -62,30 +62,6 @@
static char errfile[L_tmpnam+1];
/*
- * This is the "argument array" definition that is returned by e_new_args and is
- * used by e_add_args, e_free_args, etc.
- */
-
-struct _argArray_t {
- long _aaNumArgs; /* number of arguments set */
- long _aaMaxArgs; /* number of arguments allocated */
- char **_aaArgs; /* actual arguments */
-};
-
-typedef struct _argArray_t argArray_t;
-
-/*
- * Private Methods
- */
-static void e_free_args(argArray_t *a_args);
-static argArray_t *e_new_args(int initialCount);
-/*PRINTFLIKE2*/
-static boolean_t e_add_arg(argArray_t *a_args, char *a_format, ...);
-static int e_get_argc(argArray_t *a_args);
-static char **e_get_argv(argArray_t *a_args);
-
-
-/*
* Public Methods
*/
@@ -99,7 +75,7 @@ rpterr(void)
if (errfile[0]) {
if (fp = fopen(errfile, "r")) {
while ((c = getc(fp)) != EOF)
- putc(c, stderr);
+ (void) putc(c, stderr);
(void) fclose(fp);
}
(void) unlink(errfile);
@@ -170,7 +146,7 @@ esystem(char *cmd, int ifd, int ofd)
i = open(errfile, O_WRONLY|O_CREAT|O_TRUNC, 0666);
if (i >= 0) {
- dup2(i, STDERR_FILENO);
+ (void) dup2(i, STDERR_FILENO);
}
/* Close all open files except standard i/o */
@@ -179,7 +155,7 @@ esystem(char *cmd, int ifd, int ofd)
/* execute target executable */
- execl("/sbin/sh", "/sbin/sh", "-c", cmd, NULL);
+ (void) execl("/sbin/sh", "/sbin/sh", "-c", cmd, NULL);
progerr(pkg_gt("exec of <%s> failed, errno=%d"), cmd, errno);
_exit(99);
} else if (pid < 0) {
@@ -193,9 +169,9 @@ esystem(char *cmd, int ifd, int ofd)
* this is the parent process
*/
- sighold(SIGINT);
+ (void) sighold(SIGINT);
pid = waitpid(pid, &status, 0);
- sigrelse(SIGINT);
+ (void) sigrelse(SIGINT);
if (pid < 0) {
return (-1); /* probably interrupted */
@@ -229,7 +205,7 @@ epopen(char *cmd, char *mode)
if (errfile[0]) {
/* cleanup previous errfile */
- unlink(errfile);
+ (void) unlink(errfile);
}
perrfile = tmpnam(NULL);
@@ -596,213 +572,3 @@ e_ExecCmdList(int *r_status, char **r_results,
return (e_ExecCmdArray(r_status, r_results, a_inputFile,
a_cmd, array));
}
-
-/*
- * Name: e_new_args
- * Description: create a new argument array for use in exec() calls
- * Arguments: initialCount - [RO, *RO] - (int)
- * Initial number of elements to populate the
- * argument array with - use best guess
- * Returns: argArray_t *
- * Pointer to argument array that can be used in other
- * functions that accept it as an argument
- * == (argArray_t *)NULL - error
- * NOTE: you must call e_free_args() when the returned argument array is
- * no longer needed so that all storage used can be freed up.
- */
-
-argArray_t *
-e_new_args(int initialCount)
-{
- argArray_t *aa;
-
- /* allocate new argument array structure */
-
- aa = (argArray_t *)calloc(1, sizeof (argArray_t));
- if (aa == (argArray_t *)NULL) {
- progerr(ERR_MALLOC, strerror(errno), sizeof (argArray_t),
- "<argArray_t>");
- return ((argArray_t *)NULL);
- }
-
- /* allocate initial argument array */
-
- aa->_aaArgs = (char **)calloc(initialCount+1, sizeof (char *));
- if (aa->_aaArgs == (char **)NULL) {
- progerr(ERR_MALLOC, strerror(errno),
- (initialCount+1)*sizeof (char *), "<char **>");
- return ((argArray_t *)NULL);
- }
-
- /* initialize argument indexes */
-
- aa->_aaNumArgs = 0;
- aa->_aaMaxArgs = initialCount;
-
- return (aa);
-}
-
-/*
- * Name: e_add_arg
- * Description: add new argument to argument array for use in exec() calls
- * Arguments: a_args - [RO, *RW] - (argArray_t *)
- * Pointer to argument array (previously allocated via
- * a call to e_new_args) to add the argument to
- * a_format - [RO, *RO] - (char *)
- * Pointer to "printf" style format argument
- * ... - [RO, *RO] - (varies)
- * Arguments as appropriate for format statement
- * Returns: boolean_t
- * B_TRUE - success
- * B_FALSE - failure
- * Examples:
- * - to add an argument that specifies a file descriptor:
- * int fd;
- * e_add_arg(aa, "/proc/self/fd/%d", fd);
- * - to add a flag or other known text:
- * e_add_arg(aa, "-s")
- * - to add random text:
- * char *random_text;
- * e_add_arg(aa, "%s", random_text);
- */
-
-/*PRINTFLIKE2*/
-boolean_t
-e_add_arg(argArray_t *a_args, char *a_format, ...)
-{
- char *rstr = (char *)NULL;
- char bfr[MAX_CANON];
- size_t vres = 0;
- va_list ap;
-
- /*
- * double argument array if array is full
- */
-
- if (a_args->_aaNumArgs >= a_args->_aaMaxArgs) {
- int newMax;
- char **newArgs;
-
- newMax = a_args->_aaMaxArgs * 2;
- newArgs = (char **)realloc(a_args->_aaArgs,
- (newMax+1) * sizeof (char *));
- if (newArgs == (char **)NULL) {
- progerr(ERR_MALLOC, strerror(errno),
- ((newMax+1) * sizeof (char *)), "<char **>");
- return (B_FALSE);
- }
- a_args->_aaArgs = newArgs;
- a_args->_aaMaxArgs = newMax;
- }
-
- /* determine size of argument to add to list */
-
- va_start(ap, a_format);
- vres = vsnprintf(bfr, sizeof (bfr), a_format, ap);
- va_end(ap);
-
- /* if it fit in the built in buffer, use that */
- if (vres < sizeof (bfr)) {
- /* dup text already generated in bfr */
- rstr = strdup(bfr);
- if (rstr == (char *)NULL) {
- progerr(ERR_MALLOC, strerror(errno), vres+2,
- "<char *>");
- return (B_FALSE);
- }
- } else {
- /* allocate space for argument to add */
-
- rstr = (char *)malloc(vres+2);
- if (rstr == (char *)NULL) {
- progerr(ERR_MALLOC, strerror(errno), vres+2,
- "<char *>");
- return (B_FALSE);
- }
-
- /* generate argument to add */
-
- va_start(ap, a_format);
- vres = vsnprintf(rstr, vres+1, a_format, ap);
- va_end(ap);
- }
-
- /* add argument to the end of the argument array */
-
- a_args->_aaArgs[a_args->_aaNumArgs++] = rstr;
- a_args->_aaArgs[a_args->_aaNumArgs] = (char *)NULL;
-
- return (B_TRUE);
-}
-
-/*
- * Name: e_get_argv
- * Description: return (char **)argv pointer from argument array
- * Arguments: a_args - [RO, *RW] - (argArray_t *)
- * Pointer to argument array (previously allocated via
- * a call to e_new_args) to return argv pointer for
- * Returns: char **
- * Pointer to (char **)argv pointer suitable for use
- * in an exec*() call
- * NOTE: the actual character array is always terminated with a (char *)NULL
- */
-
-char **
-e_get_argv(argArray_t *a_args)
-{
- return (a_args->_aaArgs);
-}
-
-/*
- * Name: e_get_argc
- * Description: return (int) argc count from argument array
- * Arguments: a_args - [RO, *RW] - (argArray_t *)
- * Pointer to argument array (previously allocated via
- * a call to e_new_args) to return argc count for
- * Returns: int
- * Count of the number of arguments in the argument array
- * suitable for use in an exec*() call
- */
-
-int
-e_get_argc(argArray_t *a_args)
-{
- return (a_args->_aaNumArgs);
-}
-
-/*
- * Name: e_free_args
- * Description: free all storage contained in an argument array previously
- * allocated by a call to e_new_args
- * Arguments: a_args - [RO, *RW] - (argArray_t *)
- * Pointer to argument array (previously allocated via
- * a call to e_new_args) to free
- * Returns: void
- * NOTE: preserves errno (usually called right after e_execCmd*())
- */
-
-void
-e_free_args(argArray_t *a_args)
-{
- int i;
- int lerrno = errno;
-
- /* free all arguments in the argument array */
-
- for (i = (a_args->_aaNumArgs-1); i >= 0; i--) {
- (void) free(a_args->_aaArgs[i]);
- a_args->_aaArgs[i] = (char *)NULL;
- }
-
- /* free argument array */
-
- (void) free(a_args->_aaArgs);
-
- /* free argument array structure */
-
- (void) free(a_args);
-
- /* restore errno */
-
- errno = lerrno;
-}
diff --git a/usr/src/lib/libpkg/common/tputcfent.c b/usr/src/lib/libpkg/common/tputcfent.c
index 492f0335af..11601ded9e 100644
--- a/usr/src/lib/libpkg/common/tputcfent.c
+++ b/usr/src/lib/libpkg/common/tputcfent.c
@@ -95,14 +95,14 @@ tputcfent(struct cfent *ept, FILE *fp)
(void) fprintf(fp, pkg_gt("Major device number: %s\n"),
MSG_INVALID);
else
- (void) fprintf(fp, pkg_gt("Major device number: %d\n"),
+ (void) fprintf(fp, pkg_gt("Major device number: %ld\n"),
ept->ainfo.major);
if (ept->ainfo.minor == BADMINOR)
(void) fprintf(fp, pkg_gt("Minor device number: %s\n"),
MSG_INVALID);
else
- (void) fprintf(fp, pkg_gt("Minor device number: %d\n"),
+ (void) fprintf(fp, pkg_gt("Minor device number: %ld\n"),
ept->ainfo.minor);
break;
@@ -131,7 +131,7 @@ tputcfent(struct cfent *ept, FILE *fp)
(void) fprintf(fp, pkg_gt("Expected mode: %s\n"),
"?");
else
- (void) fprintf(fp, pkg_gt("Expected mode: %04o\n"),
+ (void) fprintf(fp, pkg_gt("Expected mode: %04lo\n"),
ept->ainfo.mode);
(void) fprintf(fp, pkg_gt("Expected owner: %s\n"),
@@ -148,10 +148,10 @@ tputcfent(struct cfent *ept, FILE *fp)
ept->cinfo.cksum);
if (ept->cinfo.modtime > 0) {
timep = localtime(&(ept->cinfo.modtime));
- strftime(timeb, sizeof (timeb),
+ (void) strftime(timeb, sizeof (timeb),
pkg_gt("Expected last modification: %b %d %X %Y\n"),
timep);
- (void) fprintf(fp, timeb);
+ (void) fputs(timeb, fp);
} else
(void) fprintf(fp,
pkg_gt("Expected last modification: ?\n"));
diff --git a/usr/src/lib/libpkg/common/verify.c b/usr/src/lib/libpkg/common/verify.c
index c48c5b8c77..3329d9aff2 100644
--- a/usr/src/lib/libpkg/common/verify.c
+++ b/usr/src/lib/libpkg/common/verify.c
@@ -106,7 +106,6 @@ reperr(char *fmt, ...)
ptln = sizeof (theErrBuf);
}
va_start(ap, fmt);
- /* LINTED variable format specifier to vsnprintf() */
(void) vsnprintf(pt, ptln, fmt, ap);
va_end(ap);
}
@@ -421,7 +420,7 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
/* Get copy of the current working directory */
if (getcwd(cwd, MAXPATHLEN) == NULL) {
- reperr(pkg_gt(ERR_GETWD), ainfo->local);
+ reperr(pkg_gt(ERR_GETWD));
return (VE_FAIL);
}
@@ -434,7 +433,7 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
if (c) {
/* bugid 4247895 */
if (strcmp(cd, c) == 0)
- strcpy(cd, "/");
+ (void) strcpy(cd, "/");
else
*c = NULL;
@@ -454,7 +453,7 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
* directory.
*/
if (!isdir(ainfo->local)) {
- chdir(cwd);
+ (void) chdir(cwd);
reperr(pkg_gt(ERR_LINKISDIR),
ainfo->local);
return (VE_FAIL);
@@ -464,7 +463,7 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
return (VE_FAIL);
if (link(ainfo->local, path)) {
- chdir(cwd);
+ (void) chdir(cwd);
reperr(pkg_gt(ERR_LINKFAIL),
ainfo->local);
return (VE_FAIL);
@@ -660,11 +659,7 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
}
if (mknod(path, ainfo->mode | S_IFCHR,
-#ifdef SUNOS41
- makedev(ainfo->xmajor, ainfo->xminor)) ||
-#else
makedev(ainfo->major, ainfo->minor)) ||
-#endif
(stat(path, &status) < 0)) {
reperr(pkg_gt(ERR_CDEVFAIL));
return (VE_FAIL);
@@ -694,11 +689,7 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
}
if (mknod(path, ainfo->mode | S_IFBLK,
-#ifdef SUNOS41
- makedev(ainfo->xmajor, ainfo->xminor)) ||
-#else
makedev(ainfo->major, ainfo->minor)) ||
-#endif
(stat(path, &status) < 0)) {
reperr(pkg_gt(ERR_BDEVFAIL));
return (VE_FAIL);
@@ -723,19 +714,6 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
retcode = 0;
if ((myftype == 'c') || (myftype == 'b')) {
-#ifdef SUNOS41
- if (setval || (ainfo->xmajor < 0))
- ainfo->xmajor = ((status.st_rdev>>8)&0377);
- if (setval || (ainfo->xminor < 0))
- ainfo->xminor = (status.st_rdev&0377);
- /* check major & minor */
- if (status.st_rdev != makedev(ainfo->xmajor, ainfo->xminor)) {
- reperr(pkg_gt(ERR_MAJMIN), ainfo->xmajor,
- ainfo->xminor,
- (status.st_rdev>>8)&0377, status.st_rdev&0377);
- retcode = VE_CONT;
- }
-#else
if (setval || (ainfo->major == BADMAJOR))
ainfo->major = major(status.st_rdev);
if (setval || (ainfo->minor == BADMINOR))
@@ -746,7 +724,6 @@ averify(int fix, char *ftype, char *path, struct ainfo *ainfo)
major(status.st_rdev), minor(status.st_rdev));
retcode = VE_CONT;
}
-#endif
}
/* compare specified mode w/ actual mode excluding sticky bit */
diff --git a/usr/src/lib/libpkg/common/vfpops.c b/usr/src/lib/libpkg/common/vfpops.c
index a4e6e54112..4c4b49c47c 100644
--- a/usr/src/lib/libpkg/common/vfpops.c
+++ b/usr/src/lib/libpkg/common/vfpops.c
@@ -911,7 +911,7 @@ vfpCheckpointFile(VFP_T **r_cpVfp, VFP_T **a_vfp, char *a_path)
/* copy contents of VFP to checkpoint to checkpointed VFP */
- memcpy(vfp, avfp, sizeof (VFP_T));
+ (void) memcpy(vfp, avfp, sizeof (VFP_T));
/* free contents of VFP to checkpoint */