diff options
author | Christian Weisgerber <naddy@FreeBSD.org> | 2003-10-06 13:36:39 +0000 |
---|---|---|
committer | Christian Weisgerber <naddy@FreeBSD.org> | 2003-10-06 13:36:39 +0000 |
commit | 0a34781d2974d9df5c7fd48de1cd527fb08c4aed (patch) | |
tree | 7ef1bdcac654f19ecb83af324c0ac8481c7bb1e3 /editors/nano | |
parent | Update runtime to latest versions. (diff) |
Fix fatal memory allocation bug.
Diffstat (limited to 'editors/nano')
-rw-r--r-- | editors/nano/Makefile | 10 | ||||
-rw-r--r-- | editors/nano/files/patch-files.c | 56 | ||||
-rw-r--r-- | editors/nano/files/patch-search.c | 19 |
3 files changed, 77 insertions, 8 deletions
diff --git a/editors/nano/Makefile b/editors/nano/Makefile index 2931a0d03565..5afeff3ff109 100644 --- a/editors/nano/Makefile +++ b/editors/nano/Makefile @@ -7,7 +7,7 @@ PORTNAME= nano PORTVERSION= 1.2.2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= editors MASTER_SITES= http://www.nano-editor.org/dist/v1.2/ @@ -29,10 +29,4 @@ post-install: ${MKDIR} ${EXAMPLESDIR} ${INSTALL_DATA} ${WRKSRC}/nanorc.sample ${EXAMPLESDIR} -.include <bsd.port.pre.mk> - -.if ${OSVERSION} > 500000 -BROKEN= "memory allocation bug" -.endif - -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/editors/nano/files/patch-files.c b/editors/nano/files/patch-files.c new file mode 100644 index 000000000000..b77ce3705488 --- /dev/null +++ b/editors/nano/files/patch-files.c @@ -0,0 +1,56 @@ + +$FreeBSD$ + +--- files.c.orig Sun Oct 5 02:30:55 2003 ++++ files.c Sun Oct 5 02:35:06 2003 +@@ -1701,16 +1701,17 @@ + #ifdef NANO_EXTRA + static int did_cred = 0; + #endif ++ static char *writepath = NULL; + + #if !defined(DISABLE_BROWSER) || (!defined(DISABLE_MOUSE) && defined(NCURSES_MOUSE_VERSION)) + currshortcut = writefile_list; + #endif + +- answer = mallocstrcpy(answer, path); ++ writepath = mallocstrcpy(writepath, path); + + if (exiting && ISSET(TEMP_OPT)) { + if (filename[0] != '\0') { +- i = write_file(answer, 0, 0, 0); ++ i = write_file(writepath, 0, 0, 0); + display_main_list(); + return i; + } else { +@@ -1751,24 +1752,24 @@ + "%s%s%s", _("Write Selection to File"), formatstr, backupstr); + } else { + if (append == 2) +- i = statusq(1, writefile_list, answer, 0, ++ i = statusq(1, writefile_list, writepath, 0, + "%s%s%s", _("File Name to Prepend to"), formatstr, backupstr); + else if (append == 1) +- i = statusq(1, writefile_list, answer, 0, ++ i = statusq(1, writefile_list, writepath, 0, + "%s%s%s", _("File Name to Append to"), formatstr, backupstr); + else +- i = statusq(1, writefile_list, answer, 0, ++ i = statusq(1, writefile_list, writepath, 0, + "%s%s%s", _("File Name to Write"), formatstr, backupstr); + } + #else + if (append == 2) +- i = statusq(1, writefile_list, answer, ++ i = statusq(1, writefile_list, writepath, + "%s", _("File Name to Prepend to")); + else if (append == 1) +- i = statusq(1, writefile_list, answer, ++ i = statusq(1, writefile_list, writepath, + "%s", _("File Name to Append to")); + else +- i = statusq(1, writefile_list, answer, ++ i = statusq(1, writefile_list, writepath, + "%s", _("File Name to Write")); + #endif /* !NANO_SMALL */ + diff --git a/editors/nano/files/patch-search.c b/editors/nano/files/patch-search.c new file mode 100644 index 000000000000..b2472c023d5e --- /dev/null +++ b/editors/nano/files/patch-search.c @@ -0,0 +1,19 @@ + +$FreeBSD$ + +--- search.c.orig Sun Oct 5 02:38:32 2003 ++++ search.c Sun Oct 5 02:40:32 2003 +@@ -769,8 +769,12 @@ + + int do_gotoline(int line, int save_pos) + { ++ static char *linestr = NULL; ++ ++ linestr = mallocstrcpy(linestr, answer); ++ + if (line <= 0) { /* Ask for it */ +- int st = statusq(FALSE, goto_list, line != 0 ? answer : "", ++ int st = statusq(FALSE, goto_list, line != 0 ? linestr : "", + #ifndef NANO_SMALL + NULL, + #endif |