Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 118803
Collapse All | Expand All

(-)cdrtools-2.01.01/cdda2wav/interface.c (-3 / +16 lines)
Lines 484-489 Link Here
484
{
484
{
485
  int retval = 0;
485
  int retval = 0;
486
  struct stat fstatstruct;
486
  struct stat fstatstruct;
487
  long bufsize = 0;
487
488
488
  /*  The device (given by pdevname) can be:
489
  /*  The device (given by pdevname) can be:
489
      a. an SCSI device specified with a /dev/xxx name,
490
      a. an SCSI device specified with a /dev/xxx name,
Lines 559-569 Link Here
559
      dontneedroot();
560
      dontneedroot();
560
      if (global.nsectors > (unsigned) scg_bufsize(scgp, 3*1024*1024)/CD_FRAMESIZE_RAW)
561
      if (global.nsectors > (unsigned) scg_bufsize(scgp, 3*1024*1024)/CD_FRAMESIZE_RAW)
561
        global.nsectors = scg_bufsize(scgp, 3*1024*1024)/CD_FRAMESIZE_RAW;
562
        global.nsectors = scg_bufsize(scgp, 3*1024*1024)/CD_FRAMESIZE_RAW;
563
564
      bufsize = global.nsectors * CD_FRAMESIZE_RAW;
565
566
      	init_scsibuf(scgp, &bufsize);
567
      global.nsectors = bufsize / CD_FRAMESIZE_RAW;
568
562
      if (global.overlap >= global.nsectors)
569
      if (global.overlap >= global.nsectors)
563
        global.overlap = global.nsectors-1;
570
	  global.overlap = global.nsectors-1;
564
571
565
	init_scsibuf(scgp, global.nsectors*CD_FRAMESIZE_RAW);
572
566
	if (global.scanbus) {
573
      	init_scsibuf(scgp, &bufsize);
574
      global.nsectors = bufsize / CD_FRAMESIZE_RAW;
575
576
      if (global.overlap >= global.nsectors)
577
	  global.overlap = global.nsectors-1;
578
579
      if (global.scanbus) {
567
		select_target(scgp, stdout);
580
		select_target(scgp, stdout);
568
		exit(0);
581
		exit(0);
569
	}
582
	}
(-)cdrtools-2.01.01/cdda2wav/scsi_cmds.c (-2 / +2 lines)
Lines 1780-1790 Link Here
1780
1780
1781
static caddr_t scsibuffer;	/* page aligned scsi transfer buffer */
1781
static caddr_t scsibuffer;	/* page aligned scsi transfer buffer */
1782
1782
1783
void init_scsibuf __PR((SCSI *, unsigned));
1783
void init_scsibuf __PR((SCSI *, long *));
1784
1784
1785
void init_scsibuf(scgp, amt)
1785
void init_scsibuf(scgp, amt)
1786
	SCSI *scgp;
1786
	SCSI *scgp;
1787
	unsigned amt;
1787
	long *amt;
1788
{
1788
{
1789
	if (scsibuffer != NULL) {
1789
	if (scsibuffer != NULL) {
1790
		fprintf(stderr, "the SCSI transfer buffer has already been allocated!\n");
1790
		fprintf(stderr, "the SCSI transfer buffer has already been allocated!\n");
(-)cdrtools-2.01.01/cdda2wav/scsi_cmds.h (-1 / +1 lines)
Lines 40-46 Link Here
40
get_orig_sectorsize __PR((SCSI *scgp, unsigned char *m4, unsigned char *m10,
40
get_orig_sectorsize __PR((SCSI *scgp, unsigned char *m4, unsigned char *m10,
41
                    unsigned char *m11));
41
                    unsigned char *m11));
42
int heiko_mmc __PR(( SCSI *scgp ));
42
int heiko_mmc __PR(( SCSI *scgp ));
43
void init_scsibuf __PR(( SCSI *scgp, unsigned amt ));
43
void init_scsibuf __PR(( SCSI *scgp, long *amt ));
44
int	myscsierr __PR(( SCSI *scgp ));
44
int	myscsierr __PR(( SCSI *scgp ));
45
45
46
extern int accepts_fua_bit;
46
extern int accepts_fua_bit;
(-)cdrtools-2.01.01/cdrecord/cdrecord.c (-3 / +10 lines)
Lines 272-277 Link Here
272
	SCSI	*scgp = NULL;
272
	SCSI	*scgp = NULL;
273
	char	errstr[80];
273
	char	errstr[80];
274
	BOOL	gracedone = FALSE;
274
	BOOL	gracedone = FALSE;
275
	size_t	wanted_bufsize = 0;
275
276
276
#ifdef __EMX__
277
#ifdef __EMX__
277
	/* This gives wildcard expansion with Non-Posix shells with EMX */
278
	/* This gives wildcard expansion with Non-Posix shells with EMX */
Lines 559-571 Link Here
559
	if (lverbose && driveropts)
560
	if (lverbose && driveropts)
560
		printf("Driveropts: '%s'\n", driveropts);
561
		printf("Driveropts: '%s'\n", driveropts);
561
562
562
/*	bufsize = scg_bufsize(scgp, CDR_BUF_SIZE);*/
563
	bufsize = scg_bufsize(scgp, bufsize);
563
	bufsize = scg_bufsize(scgp, bufsize);
564
	if (lverbose || debug)
564
	if (lverbose || debug)
565
		error("SCSI buffer size: %ld\n", bufsize);
565
		error("SCSI buffer size: %ld\n", bufsize);
566
	if ((buf = scg_getbuf(scgp, bufsize)) == NULL)
567
		comerr("Cannot get SCSI I/O buffer.\n");
568
566
567
	wanted_bufsize = bufsize;
568
	buf = scg_getbuf(scgp, &bufsize);
569
570
	if (NULL == buf)
571
		comerr("Cannot get SCSI I/O buffer of size %d bytes.\n", bufsize);
572
573
	if ((lverbose || debug) && (bufsize != wanted_bufsize));
574
		errmsgno(EX_BAD, "Asked for SCSI I/O buffer size %d bytes, could only get %d.\n", wanted_bufsize, bufsize);
575
		
569
	if ((flags & F_SCANBUS) != 0) {
576
	if ((flags & F_SCANBUS) != 0) {
570
		select_target(scgp, stdout);
577
		select_target(scgp, stdout);
571
		exit(0);
578
		exit(0);
(-)cdrtools-2.01.01/libscg/scg/scsitransp.h (-1 / +1 lines)
Lines 144-150 Link Here
144
extern	int	scg_initiator_id	__PR((SCSI *scgp));
144
extern	int	scg_initiator_id	__PR((SCSI *scgp));
145
extern	int	scg_isatapi		__PR((SCSI *scgp));
145
extern	int	scg_isatapi		__PR((SCSI *scgp));
146
extern	int	scg_reset		__PR((SCSI *scgp, int what));
146
extern	int	scg_reset		__PR((SCSI *scgp, int what));
147
extern	void	*scg_getbuf		__PR((SCSI *scgp, long));
147
extern	void	*scg_getbuf		__PR((SCSI *scgp, long *amt));
148
extern	void	scg_freebuf		__PR((SCSI *scgp));
148
extern	void	scg_freebuf		__PR((SCSI *scgp));
149
extern	long	scg_bufsize		__PR((SCSI *scgp, long));
149
extern	long	scg_bufsize		__PR((SCSI *scgp, long));
150
extern	void	scg_setnonstderrs	__PR((SCSI *scgp, const char **));
150
extern	void	scg_setnonstderrs	__PR((SCSI *scgp, const char **));
(-)cdrtools-2.01.01/libscg/scsitransp.c (-6 / +15 lines)
Lines 63-69 Link Here
63
EXPORT	int	scg_initiator_id __PR((SCSI *scgp));
63
EXPORT	int	scg_initiator_id __PR((SCSI *scgp));
64
EXPORT	int	scg_isatapi	__PR((SCSI *scgp));
64
EXPORT	int	scg_isatapi	__PR((SCSI *scgp));
65
EXPORT	int	scg_reset	__PR((SCSI *scgp, int what));
65
EXPORT	int	scg_reset	__PR((SCSI *scgp, int what));
66
EXPORT	void	*scg_getbuf	__PR((SCSI *scgp, long));
66
EXPORT	void	*scg_getbuf	__PR((SCSI *scgp, long *amt));
67
EXPORT	void	scg_freebuf	__PR((SCSI *scgp));
67
EXPORT	void	scg_freebuf	__PR((SCSI *scgp));
68
EXPORT	long	scg_bufsize	__PR((SCSI *scgp, long));
68
EXPORT	long	scg_bufsize	__PR((SCSI *scgp, long));
69
EXPORT	void	scg_setnonstderrs __PR((SCSI *scgp, const char **));
69
EXPORT	void	scg_setnonstderrs __PR((SCSI *scgp, const char **));
Lines 233-247 Link Here
233
EXPORT void *
233
EXPORT void *
234
scg_getbuf(scgp, amt)
234
scg_getbuf(scgp, amt)
235
	SCSI	*scgp;
235
	SCSI	*scgp;
236
	long	amt;
236
	long	*amt;
237
{
237
{
238
	void	*buf;
238
	void	*buf = NULL;
239
	size_t	pagesize = getpagesize();
240
	long	bufsize = *amt;
239
241
240
	if (amt <= 0 || amt > scg_bufsize(scgp, amt))
242
	if (bufsize <= 0 || bufsize > scg_bufsize(scgp, bufsize))
241
		return ((void *)0);
243
		return ((void *)0);
242
244
243
	buf = SCGO_GETBUF(scgp, amt);
245
	while (bufsize >= pagesize) {
244
	scgp->bufptr = buf;
246
	    buf = SCGO_GETBUF(scgp, bufsize);
247
	    if (buf)
248
		    break;
249
	    bufsize -= pagesize;
250
	}
251
	
252
	*amt = bufsize;
253
	    scgp->bufptr = buf;
245
	return (buf);
254
	return (buf);
246
}
255
}
247
256
(-)cdrtools-2.01.01/mkisofs/diag/scsi.c (-1 / +1 lines)
Lines 156-162 Link Here
156
	}
156
	}
157
157
158
	bufsize = scg_bufsize(scgp, BUF_SIZE);
158
	bufsize = scg_bufsize(scgp, BUF_SIZE);
159
	if ((buf = scg_getbuf(scgp, bufsize)) == NULL) {
159
	if ((buf = scg_getbuf(scgp, &bufsize)) == NULL) {
160
		errmsg("Cannot get SCSI I/O buffer.\n");
160
		errmsg("Cannot get SCSI I/O buffer.\n");
161
		scg_close(scgp);
161
		scg_close(scgp);
162
		return (-1);
162
		return (-1);
(-)cdrtools-2.01.01/mkisofs/scsi.c (-1 / +1 lines)
Lines 156-162 Link Here
156
	}
156
	}
157
157
158
	bufsize = scg_bufsize(scgp, BUF_SIZE);
158
	bufsize = scg_bufsize(scgp, BUF_SIZE);
159
	if ((buf = scg_getbuf(scgp, bufsize)) == NULL) {
159
	if ((buf = scg_getbuf(scgp, &bufsize)) == NULL) {
160
		errmsg("Cannot get SCSI I/O buffer.\n");
160
		errmsg("Cannot get SCSI I/O buffer.\n");
161
		scg_close(scgp);
161
		scg_close(scgp);
162
		return (-1);
162
		return (-1);
(-)cdrtools-2.01.01/readcd/readcd.c (-1 / +1 lines)
Lines 392-398 Link Here
392
	if (Sbufsize == 0)
392
	if (Sbufsize == 0)
393
		Sbufsize = 256*1024L;
393
		Sbufsize = 256*1024L;
394
	Sbufsize = scg_bufsize(scgp, Sbufsize);
394
	Sbufsize = scg_bufsize(scgp, Sbufsize);
395
	if ((Sbuf = scg_getbuf(scgp, Sbufsize)) == NULL)
395
	if ((Sbuf = scg_getbuf(scgp, &Sbufsize)) == NULL)
396
		comerr("Cannot get SCSI I/O buffer.\n");
396
		comerr("Cannot get SCSI I/O buffer.\n");
397
397
398
	is_suid = geteuid() != getuid();
398
	is_suid = geteuid() != getuid();
(-)cdrtools-2.01.01/rscsi/rscsi.c (-15 / +15 lines)
Lines 86-92 Link Here
86
LOCAL	void	readbuf		__PR((char *buf, int n));
86
LOCAL	void	readbuf		__PR((char *buf, int n));
87
LOCAL	void	voidarg		__PR((int n));
87
LOCAL	void	voidarg		__PR((int n));
88
LOCAL	void	readarg		__PR((char *buf, int n));
88
LOCAL	void	readarg		__PR((char *buf, int n));
89
LOCAL	char *	preparebuffer	__PR((int size));
89
LOCAL	char *	preparebuffer	__PR((long *size));
90
LOCAL	int	checkscsi	__PR((char *decive));
90
LOCAL	int	checkscsi	__PR((char *decive));
91
LOCAL	void	rscsirespond	__PR((int ret, int err));
91
LOCAL	void	rscsirespond	__PR((int ret, int err));
92
LOCAL	void	rscsireply	__PR((int ret));
92
LOCAL	void	rscsireply	__PR((int ret));
Lines 574-580 Link Here
574
LOCAL void
574
LOCAL void
575
getbuf()
575
getbuf()
576
{
576
{
577
	int	ret = 0;
577
	long	ret = 0;
578
	char	amt[CMD_SIZE];
578
	char	amt[CMD_SIZE];
579
579
580
	readarg(amt, sizeof(amt));
580
	readarg(amt, sizeof(amt));
Lines 584-590 Link Here
584
		return;
584
		return;
585
	}
585
	}
586
	ret = scg_bufsize(scsi_ptr, atol(amt));
586
	ret = scg_bufsize(scsi_ptr, atol(amt));
587
	if (preparebuffer(ret) == NULL)
587
	if (preparebuffer(&ret) == NULL)
588
		ret = -1;
588
		ret = -1;
589
	rscsirespond(ret, geterrno());
589
	rscsirespond(ret, geterrno());
590
}
590
}
Lines 919-944 Link Here
919
919
920
LOCAL char *
920
LOCAL char *
921
preparebuffer(size)
921
preparebuffer(size)
922
	int	size;
922
	long	*size;
923
{
923
{
924
	Sbufsize = size;
924
	Sbufsize = *size;
925
	if ((Sbuf = scg_getbuf(scsi_ptr, Sbufsize)) == NULL) {
925
	if ((Sbuf = scg_getbuf(scsi_ptr, &Sbufsize)) == NULL) {
926
		Sbufsize = 0L;
926
		Sbufsize = 0L;
927
		return (Sbuf);
927
		return (Sbuf);
928
	}
928
	}
929
	size = Sbufsize + 1024;	/* Add protocol overhead */
929
	*size = Sbufsize + 1024;	/* Add protocol overhead */
930
930
931
#ifdef	SO_SNDBUF
931
#ifdef	SO_SNDBUF
932
	while (size > 512 &&
932
	while (*size > 512 &&
933
	       setsockopt(STDOUT_FILENO, SOL_SOCKET, SO_SNDBUF, (char *)&size, sizeof (size)) < 0)
933
	       setsockopt(STDOUT_FILENO, SOL_SOCKET, SO_SNDBUF, (char *)size, sizeof (*size)) < 0)
934
		size -= 512;
934
		*size -= 512;
935
	DEBUG1("rscsid: sndsize: %d\n", size);
935
	DEBUG1("rscsid: sndsize: %d\n", *size);
936
#endif
936
#endif
937
#ifdef	SO_RCVBUF
937
#ifdef	SO_RCVBUF
938
	while (size > 512 &&
938
	while (*size > 512 &&
939
	       setsockopt(STDIN_FILENO, SOL_SOCKET, SO_RCVBUF, (char *)&size, sizeof (size)) < 0)
939
	       setsockopt(STDIN_FILENO, SOL_SOCKET, SO_RCVBUF, (char *)size, sizeof (*size)) < 0)
940
		size -= 512;
940
		*size -= 512;
941
	DEBUG1("rscsid: rcvsize: %d\n", size);
941
	DEBUG1("rscsid: rcvsize: %d\n", *size);
942
#endif
942
#endif
943
	return (Sbuf);
943
	return (Sbuf);
944
}
944
}
(-)cdrtools-2.01.01/scgcheck/scgcheck.c (-2 / +10 lines)
Lines 460-482 Link Here
460
getbuf(scgp)
460
getbuf(scgp)
461
	SCSI	*scgp;
461
	SCSI	*scgp;
462
{
462
{
463
	long wanted_size = 0;
464
	
463
	bufsize = scg_bufsize(scgp, MAX_BUF_SIZE);
465
	bufsize = scg_bufsize(scgp, MAX_BUF_SIZE);
464
		printf("Max DMA buffer size: %ld\n", bufsize);
466
		printf("Max DMA buffer size: %ld\n", bufsize);
465
		fprintf(logfile, "Max DMA buffer size: %ld\n", bufsize);
467
		fprintf(logfile, "Max DMA buffer size: %ld\n", bufsize);
466
	seterrno(0);
468
	seterrno(0);
467
	if ((buf = scg_getbuf(scgp, bufsize)) == NULL) {
469
	wanted_size = bufsize;
470
	if ((buf = scg_getbuf(scgp, &bufsize)) == NULL) {
468
		errmsg("Cannot get SCSI buffer (%ld bytes).\n", bufsize);
471
		errmsg("Cannot get SCSI buffer (%ld bytes).\n", bufsize);
469
		fprintf(logfile, "%s. Cannot get SCSI buffer (%ld bytes).\n",
472
		fprintf(logfile, "%s. Cannot get SCSI buffer (%ld bytes).\n",
470
			errmsgstr(geterrno()), bufsize);
473
			errmsgstr(geterrno()), bufsize);
471
	} else {
474
	} else {
475
		if (wanted_size != bufsize)
476
		    fprint(logfile, "Max buffer available: %ld but wanted %ld\n", bufsize, wanted_size);
472
		scg_freebuf(scgp);
477
		scg_freebuf(scgp);
473
	}
478
	}
474
479
475
	bufsize = scg_bufsize(scgp, BUF_SIZE);
480
	bufsize = scg_bufsize(scgp, BUF_SIZE);
481
	wanted_size = bufsize;
476
	if (debug)
482
	if (debug)
477
		error("SCSI buffer size: %ld\n", bufsize);
483
		error("SCSI buffer size: %ld\n", bufsize);
478
	if ((buf = scg_getbuf(scgp, bufsize)) == NULL)
484
	if ((buf = scg_getbuf(scgp, &bufsize)) == NULL)
479
		comerr("Cannot get SCSI I/O buffer.\n");
485
		comerr("Cannot get SCSI I/O buffer.\n");
486
	if (wanted_size != bufsize)
487
	    fprint(logfile, "Max buffer available: %ld but wanted %ld\n", bufsize, wanted_size);
480
}
488
}
481
489
482
EXPORT void
490
EXPORT void
(-)cdrtools-2.01.01/scgskeleton/skel.c (-1 / +1 lines)
Lines 247-253 Link Here
247
	if (Sbufsize == 0)
247
	if (Sbufsize == 0)
248
		Sbufsize = 256*1024L;
248
		Sbufsize = 256*1024L;
249
	Sbufsize = scg_bufsize(scgp, Sbufsize);
249
	Sbufsize = scg_bufsize(scgp, Sbufsize);
250
	if ((Sbuf = scg_getbuf(scgp, Sbufsize)) == NULL)
250
	if ((Sbuf = scg_getbuf(scgp, &Sbufsize)) == NULL)
251
		comerr("Cannot get SCSI I/O buffer.\n");
251
		comerr("Cannot get SCSI I/O buffer.\n");
252
252
253
	is_suid = geteuid() != getuid();
253
	is_suid = geteuid() != getuid();

Return to bug 118803