aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsbronder <jsbronder@32389bae-6d03-0410-99cf-db05cde120eb>2008-11-07 19:31:48 +0000
committerjsbronder <jsbronder@32389bae-6d03-0410-99cf-db05cde120eb>2008-11-07 19:31:48 +0000
commitc1a321724e1f86dc2e8322fd86cab164b103a282 (patch)
treed3db3076abf0f0970f0c8a1f2940793dccab96e4
parentsci-mathematics/sage-bin: Updated Manifest (diff)
downloadsci-c1a321724e1f86dc2e8322fd86cab164b103a282.tar.gz
sci-c1a321724e1f86dc2e8322fd86cab164b103a282.tar.bz2
sci-c1a321724e1f86dc2e8322fd86cab164b103a282.zip
Fix 242180, comment 5 by just allocating a buffer for the string instead of trying to use PATH_MAX.
git-svn-id: http://overlays.gentoo.org/svn/proj/science/overlay@1339 32389bae-6d03-0410-99cf-db05cde120eb
-rw-r--r--sys-cluster/mpich2/Manifest2
-rw-r--r--sys-cluster/mpich2/files/mpich2-1.0.8-mpdconf-env.patch35
2 files changed, 24 insertions, 13 deletions
diff --git a/sys-cluster/mpich2/Manifest b/sys-cluster/mpich2/Manifest
index 0e0ce3613..ee630dde7 100644
--- a/sys-cluster/mpich2/Manifest
+++ b/sys-cluster/mpich2/Manifest
@@ -1,7 +1,7 @@
AUX eselect.mpi.mpich2 231 RMD160 d4290065172c4a83d02777996bd862b1da2eb832 SHA1 879f4b7bdb29c1816dd3d59b12c1b22ea434bf8d SHA256 452b1c3fb9dca8896ec429843a41c0721f00be48d253b44c362923f33a1bd4f9
AUX mpd.conf 48 RMD160 289de9bb40759e3f71229cf47e4d2af83703a85f SHA1 244eee76dbf4ff269e4489d5cc7c3577c6c1fa6b SHA256 ae740cacaf2cb798921cb2092f5af98de67445e27af3f88858f3e6d2bbb127f4
AUX mpich2-1.0.8-gforker-install-alt-fix.patch 621 RMD160 5b9904ae02f1c1098fdfd2dc4717610f89469afd SHA1 a33bcefa87d990a678436ebfac70976069a7f90d SHA256 a79e469b08e0a3f6c17ec7ec7ea01d3a56a553803fefd24f3794237eead36ced
-AUX mpich2-1.0.8-mpdconf-env.patch 4459 RMD160 5a676b9f9b04e8207b75951cb07026791b611997 SHA1 700acb9589e40c86024ea329d2a5cbf4ea48f118 SHA256 c5116c90eb72f2e252e7c7c4bbc8073dc5c745801a5f290467689d3e580e90d3
+AUX mpich2-1.0.8-mpdconf-env.patch 5041 RMD160 c3d9f6ebd43443a24614da030253cf8c503afd59 SHA1 5b453a171f8b1dce93e3c2e675e5b3d4f05514e8 SHA256 b8c81614bba8c748db2ec24a7683d27b3a0430950fecd5644fd1f97f8e5ab2f9
AUX mpich2-1.0.8-site-packages-py.patch 7534 RMD160 93b2cab20620da379615eaf3bfc7279384987722 SHA1 706313c20e1d4d6a4a060c8ac36befdb5ee3b926 SHA256 a857e7c0effa7cdd62c1bc1bd054b4746764246410062d373e7e0892bcd20df8
AUX mpich2.envd 37 RMD160 bd41e2b43f62629d5f1922480bce70c7b7c4266a SHA1 c192f12edc72a9c9a708054ee3ff40091b289331 SHA256 a44e0a2e248c1112efe168e859f57ba1213a34003b657f72e401c1274fe5ba11
DIST mpich2-1.0.8.tar.gz 17237476 RMD160 646cf50fbdc60a49809f4d0a6bcaf2835844db1f SHA1 41d6f6ce1034ecec5c14fb03592730ae2dd071e5 SHA256 7551ce20f3ef366567c566d08782323360b5dbd2d15d816e41c10b5f96eaf369
diff --git a/sys-cluster/mpich2/files/mpich2-1.0.8-mpdconf-env.patch b/sys-cluster/mpich2/files/mpich2-1.0.8-mpdconf-env.patch
index b52cc86f9..f29682ad9 100644
--- a/sys-cluster/mpich2/files/mpich2-1.0.8-mpdconf-env.patch
+++ b/sys-cluster/mpich2/files/mpich2-1.0.8-mpdconf-env.patch
@@ -62,29 +62,40 @@ diff -urN mpich2-1.0.8/src/pm/mpd/mpdlib.py mpich2-1.0.8_p/src/pm/mpd/mpdlib.py
parmsRCFilename = os.path.join(os.environ['HOMEPATH'],'.mpd.conf')
diff -urN mpich2-1.0.8/src/pm/mpd/mpdroot.c mpich2-1.0.8_p/src/pm/mpd/mpdroot.c
--- mpich2-1.0.8/src/pm/mpd/mpdroot.c 2007-11-02 18:50:19.000000000 -0400
-+++ mpich2-1.0.8_p/src/pm/mpd/mpdroot.c 2008-11-04 20:37:46.472191105 -0500
-@@ -19,6 +19,8 @@
++++ mpich2-1.0.8_p/src/pm/mpd/mpdroot.c 2008-11-07 13:45:10.560017904 -0500
+@@ -19,6 +19,7 @@
struct passwd *pwent;
char input_line[NAME_LEN+1], secretword[NAME_LEN+1];
FILE *conf_file;
-+ char *envvar = NULL;
-+ char mpdconf_path[PATH_MAX];
++ char *mpdconf_path = NULL;
if ((pwent = getpwuid(getuid())) == NULL) /* for real id */
{
-@@ -26,10 +28,20 @@
+@@ -26,10 +27,32 @@
exit(-1);
}
- conf_file = fopen("/etc/mpd.conf","r");
-+ envvar = getenv("MPD_CONF_FILE");
-+ if ( envvar && access( envvar, R_OK ) == 0 )
-+ strncpy( mpdconf_path, envvar, PATH_MAX );
-+ else
-+ {
-+ snprintf( mpdconf_path, PATH_MAX, "%s/.mpd.conf", pwent->pw_dir );
++ /*
++ * We look for a readable mpd.conf in the following order.
++ * - MPD_CONF_FILE set in environment
++ * - .mpd.conf in the user's home directory
++ * - The system wide default in SYSCONFDIR/mpd.conf
++ */
++ mpdconf_path = getenv("MPD_CONF_FILE");
++ if ( ! (mpdconf_path && access( mpdconf_path, R_OK ) == 0) ){
++ /* By far, the largest we'll need */
++ size_t mpdconf_path_len = strlen(pwent->pw_dir) \
++ + strlen(SYSCONFDIR) + strlen("/.mpd.conf");
++
++ mpdconf_path = (char*) malloc( sizeof(char) * mpdconf_path_len );
++ if ( ! mpdconf_path ){
++ fprintf( stderr, "%s: Failed to allocate a buffer for path to mpd.conf\n", argv[0]);
++ exit(-1);
++ }
++ snprintf( mpdconf_path, mpdconf_path_len-1, "%s/.mpd.conf", pwent->pw_dir );
+ if ( access( mpdconf_path, R_OK ) != 0 )
-+ snprintf( mpdconf_path, PATH_MAX, "%s/mpd.conf", SYSCONFDIR );
++ snprintf( mpdconf_path, mpdconf_path_len-1, "%s/mpd.conf", SYSCONFDIR );
+ }
+ conf_file = fopen( mpdconf_path, "r");
+