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)
76 lines
2.1 KiB
Diff
76 lines
2.1 KiB
Diff
Index: sys/compat/linprocfs/linprocfs.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/compat/linprocfs/linprocfs.c,v
|
|
retrieving revision 1.84
|
|
diff -u -r1.84 linprocfs.c
|
|
--- sys/compat/linprocfs/linprocfs.c 16 Aug 2004 08:19:18 -0000 1.84
|
|
+++ sys/compat/linprocfs/linprocfs.c 27 Nov 2004 12:28:00 -0000
|
|
@@ -769,6 +769,7 @@
|
|
linprocfs_doproccmdline(PFS_FILL_ARGS)
|
|
{
|
|
struct ps_strings pstr;
|
|
+ char **ps_argvstr;
|
|
int error, i;
|
|
|
|
/*
|
|
@@ -794,10 +795,21 @@
|
|
sizeof(pstr));
|
|
if (error)
|
|
return (error);
|
|
+ if (pstr.ps_nargvstr > ARG_MAX)
|
|
+ return (E2BIG);
|
|
+ ps_argvstr = malloc(pstr.ps_nargvstr * sizeof(char *),
|
|
+ M_TEMP, M_WAITOK);
|
|
+ error = copyin((void *)pstr.ps_argvstr, ps_argvstr,
|
|
+ pstr.ps_nargvstr * sizeof(char *));
|
|
+ if (error) {
|
|
+ free(ps_argvstr, M_TEMP);
|
|
+ return (error);
|
|
+ }
|
|
for (i = 0; i < pstr.ps_nargvstr; i++) {
|
|
- sbuf_copyin(sb, pstr.ps_argvstr[i], 0);
|
|
+ sbuf_copyin(sb, ps_argvstr[i], 0);
|
|
sbuf_printf(sb, "%c", '\0');
|
|
}
|
|
+ free(ps_argvstr, M_TEMP);
|
|
}
|
|
|
|
return (0);
|
|
Index: sys/fs/procfs/procfs_status.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/sys/fs/procfs/procfs_status.c,v
|
|
retrieving revision 1.53
|
|
diff -u -r1.53 procfs_status.c
|
|
--- sys/fs/procfs/procfs_status.c 5 Oct 2004 18:51:10 -0000 1.53
|
|
+++ sys/fs/procfs/procfs_status.c 27 Nov 2004 12:28:00 -0000
|
|
@@ -173,6 +173,7 @@
|
|
procfs_doproccmdline(PFS_FILL_ARGS)
|
|
{
|
|
struct ps_strings pstr;
|
|
+ char **ps_argvstr;
|
|
int error, i;
|
|
|
|
/*
|
|
@@ -199,10 +200,21 @@
|
|
sizeof(pstr));
|
|
if (error)
|
|
return (error);
|
|
+ if (pstr.ps_nargvstr > ARG_MAX)
|
|
+ return (E2BIG);
|
|
+ ps_argvstr = malloc(pstr.ps_nargvstr * sizeof(char *),
|
|
+ M_TEMP, M_WAITOK);
|
|
+ error = copyin((void *)pstr.ps_argvstr, ps_argvstr,
|
|
+ pstr.ps_nargvstr * sizeof(char *));
|
|
+ if (error) {
|
|
+ free(ps_argvstr, M_TEMP);
|
|
+ return (error);
|
|
+ }
|
|
for (i = 0; i < pstr.ps_nargvstr; i++) {
|
|
- sbuf_copyin(sb, pstr.ps_argvstr[i], 0);
|
|
+ sbuf_copyin(sb, ps_argvstr[i], 0);
|
|
sbuf_printf(sb, "%c", '\0');
|
|
}
|
|
+ free(ps_argvstr, M_TEMP);
|
|
}
|
|
|
|
return (0);
|