X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm-etc_dir.patch;h=d296f2290506d367758f4a46b1bd2493174ab658;hp=7437042ae7a8090cf7d0ba5795b5b846c94da889;hb=769d887949774544fe4a2606119ad6d18cefc527;hpb=80c5dfe17e08a695e803cc4b28f9ab88e7c55524 diff --git a/rpm-etc_dir.patch b/rpm-etc_dir.patch index 7437042..d296f22 100644 --- a/rpm-etc_dir.patch +++ b/rpm-etc_dir.patch @@ -1,28 +1,15 @@ diff -Nru rpm-4.1/lib/rpmrc.c rpm-4.1.new/lib/rpmrc.c --- rpm-4.1/lib/rpmrc.c Tue Aug 20 16:53:44 2002 +++ rpm-4.1.new/lib/rpmrc.c Tue Mar 11 18:41:48 2003 -@@ -1756,27 +1756,40 @@ +@@ -1820,23 +1820,37 @@ /* Expand ~/ to $HOME/ */ fn[0] = '\0'; if (r[0] == '~' && r[1] == '/') { -+ const char * etc_dir = getenv("HOME_ETC"); ++ const char * etc_dir = getenv("HOME_ETC"); const char * home = getenv("HOME"); - if (home == NULL) { -+ if (etc_dir) { -+ if (strlen(etc_dir) > (sizeof(fn) - strlen(r))) { -+ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME_ETC is too large.\n"),r); -+ rc = 1; -+ break; -+ } -+ strcpy(fn, etc_dir); -+ strncat(fn, "/", sizeof(fn) - strlen(fn)); -+ r+=2; -+ -+ if (r[0] == '.') r++; -+ } else { -+ if (home == NULL) { - /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */ -- if (rcfiles == defrcfiles && myrcfiles != r) +- /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */ +- if (rcfiles == rpmRcfiles && myrcfiles != r) - continue; - rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r); - rc = 1; @@ -30,78 +17,53 @@ diff -Nru rpm-4.1/lib/rpmrc.c rpm-4.1.new/lib/rpmrc.c - } - if (strlen(home) > (sizeof(fn) - strlen(r))) { - rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"), -+ if (rcfiles == defrcfiles && myrcfiles != r) -+ continue; -+ rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r); -+ rc = 1; -+ break; -+ } -+ if (strlen(home) > (sizeof(fn) - strlen(r))) { -+ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"), - r); +- r); - rc = 1; - break; -- } ++ if (etc_dir) { ++ if (strlen(etc_dir) > (sizeof(fn) - strlen(r))) { ++ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME_ETC is too large.\n"),r); ++ rc = 1; ++ break; ++ } ++ strcpy(fn, etc_dir); ++ strncat(fn, "/", sizeof(fn) - strlen(fn)); ++ r+=2; ++ } else { ++ if (home == NULL) { ++ /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */ ++ if (rcfiles == rpmRcfiles && myrcfiles != r) ++ continue; ++ rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r); ++ rc = 1; ++ break; ++ } ++ if (strlen(home) > (sizeof(fn) - strlen(r))) { ++ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"), ++ r); ++ rc = 1; ++ break; ++ } ++ strcpy(fn, home); ++ r++; + } - strcpy(fn, home); - r++; -- } -- strncat(fn, r, sizeof(fn) - (strlen(fn) + 1)); -- fn[sizeof(fn)-1] = '\0'; -- -+ rc = 1; -+ break; -+ } -+ strcpy(fn, home); -+ r++; -+ } -+ } -+ strncat(fn, r, sizeof(fn) - (strlen(fn) + 1)); -+ fn[sizeof(fn)-1] = '\0'; - /* Read another rcfile */ - fd = Fopen(fn, "r.fpio"); - if (fd == NULL || Ferror(fd)) { -diff -Nru rpm-4.1/rpmio/macro.c rpm-4.1.new/rpmio/macro.c ---- rpm-4.1/rpmio/macro.c Tue Sep 17 14:58:23 2002 -+++ rpm-4.1.new/rpmio/macro.c Tue Mar 11 18:21:59 2003 -@@ -1614,15 +1614,23 @@ - buf[0] = '\0'; - if (mfile[0] == '~' && mfile[1] == '/') { - char *home; -- if ((home = getenv("HOME")) != NULL) { -- mfile += 2; -- strncpy(buf, home, sizeof(buf)); -- strncat(buf, "/", sizeof(buf) - strlen(buf)); -+ char *etc_dir = getenv("HOME_ETC"); + -+ if (etc_dir) { -+ mfile += 2; -+ if (mfile[0] == '.') mfile++; -+ strncpy(buf, etc_dir, sizeof(buf)); -+ strncat(buf, "/", sizeof(buf) - strlen(buf)); -+ } else { -+ if ((home = getenv("HOME")) != NULL) { -+ mfile += 2; -+ strncpy(buf, home, sizeof(buf)); -+ strncat(buf, "/", sizeof(buf) - strlen(buf)); - } -+ } ++ } - strncat(buf, mfile, sizeof(buf) - strlen(buf)); - buf[sizeof(buf)-1] = '\0'; -- - fd = Fopen(buf, "r.fpio"); - if (fd == NULL || Ferror(fd)) { - if (fd) (void) Fclose(fd); ---- rpm-4.3/po/pl.po.orig 2003-06-10 23:59:11.000000000 +0200 -+++ rpm-4.3/po/pl.po 2003-06-11 00:06:16.000000000 +0200 -@@ -2834,6 +2834,10 @@ - msgid "Please contact rpm-list@redhat.com\n" - msgstr "Proszê skontaktowaæ siê z rpm-list@redhat.com\n" + strncat(fn, r, sizeof(fn) - (strlen(fn) + 1)); + fn[sizeof(fn)-1] = '\0'; +--- rpm-4.4.8/po/pl.po.orig 2007-04-08 16:11:42.125435004 +0200 ++++ rpm-4.4.8/po/pl.po 2007-04-08 16:25:11.343549717 +0200 +@@ -3251,6 +3251,10 @@ + msgid "Cannot expand %s\n" + msgstr "Nie mo¿na rozwin±æ %s\n" -+#: lib/rpmrc.c:1764 ++#: lib/rpmrc.c:1935 +msgid "Cannot read %s, HOME_ETC is too large.\n" +msgstr "Nie mo¿na odczytaæ %s, HOME_ETC jest zbyt du¿e.\n" + - #: lib/rpmrc.c:1765 + #: lib/rpmrc.c:1924 #, c-format - msgid "Cannot expand %s\n" + msgid "Cannot read %s, HOME is too large.\n"