3571e53040
patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
83 lines
2.2 KiB
Diff
83 lines
2.2 KiB
Diff
Index: linux_misc.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/i386/linux/linux_misc.c,v
|
|
retrieving revision 1.77.2.3
|
|
retrieving revision 1.77.2.4
|
|
diff -u -r1.77.2.3 -r1.77.2.4
|
|
--- linux_misc.c 2000/07/20 05:31:56 1.77.2.3
|
|
+++ linux_misc.c 2000/07/30 05:36:11 1.77.2.4
|
|
@@ -954,6 +954,8 @@
|
|
tv[1].tv_usec = 0;
|
|
/* so that utimes can copyin */
|
|
tvp = (struct timeval *)stackgap_alloc(&sg, sizeof(tv));
|
|
+ if (tvp == NULL)
|
|
+ return (ENAMETOOLONG);
|
|
if ((error = copyout(tv, tvp, sizeof(tv))))
|
|
return error;
|
|
bsdutimes.tptr = tvp;
|
|
Index: linux_util.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/i386/linux/linux_util.c,v
|
|
retrieving revision 1.9.2.1
|
|
retrieving revision 1.9.2.2
|
|
diff -u -r1.9.2.1 -r1.9.2.2
|
|
--- linux_util.c 2000/07/07 01:23:45 1.9.2.1
|
|
+++ linux_util.c 2000/07/30 05:36:11 1.9.2.2
|
|
@@ -162,7 +162,10 @@
|
|
else {
|
|
sz = &ptr[len] - buf;
|
|
*pbuf = stackgap_alloc(sgp, sz + 1);
|
|
- error = copyout(buf, *pbuf, sz);
|
|
+ if (*pbuf != NULL)
|
|
+ error = copyout(buf, *pbuf, sz);
|
|
+ else
|
|
+ error = ENAMETOOLONG;
|
|
free(buf, M_TEMP);
|
|
}
|
|
|
|
Index: linux_util.h
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/i386/linux/linux_util.h,v
|
|
retrieving revision 1.10
|
|
retrieving revision 1.10.2.1
|
|
diff -u -r1.10 -r1.10.2.1
|
|
--- linux_util.h 1999/12/04 11:10:22 1.10
|
|
+++ linux_util.h 2000/07/30 05:36:11 1.10.2.1
|
|
@@ -56,29 +56,27 @@
|
|
static __inline caddr_t stackgap_init(void);
|
|
static __inline void *stackgap_alloc(caddr_t *, size_t);
|
|
|
|
+#define szsigcode (*(curproc->p_sysent->sv_szsigcode))
|
|
+
|
|
static __inline caddr_t
|
|
stackgap_init()
|
|
{
|
|
-#define szsigcode (*(curproc->p_sysent->sv_szsigcode))
|
|
return (caddr_t)(PS_STRINGS - szsigcode - SPARE_USRSPACE);
|
|
}
|
|
|
|
-
|
|
static __inline void *
|
|
stackgap_alloc(sgp, sz)
|
|
caddr_t *sgp;
|
|
size_t sz;
|
|
{
|
|
- void *p = (void *) *sgp;
|
|
- *sgp += ALIGN(sz);
|
|
+ void *p = (void *) *sgp;
|
|
+
|
|
+ sz = ALIGN(sz);
|
|
+ if (*sgp + sz > (caddr_t)(PS_STRINGS - szsigcode))
|
|
+ return NULL;
|
|
+ *sgp += sz;
|
|
return p;
|
|
}
|
|
-
|
|
-#ifdef DEBUG_LINUX
|
|
-#define DPRINTF(a) printf a;
|
|
-#else
|
|
-#define DPRINTF(a)
|
|
-#endif
|
|
|
|
extern const char linux_emul_path[];
|
|
|