From: Fletcher T. Penney Date: Fri, 21 Jul 2017 14:22:45 +0000 (-0400) Subject: FIXED: Improve safety of realpath X-Git-Tag: 6.2.0^2~29 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ce6d4947521f2d8fcae0a7c28913b09b61ab0a56;p=multimarkdown FIXED: Improve safety of realpath --- diff --git a/Sources/multimarkdown/main.c b/Sources/multimarkdown/main.c index c4af761..0aedb88 100644 --- a/Sources/multimarkdown/main.c +++ b/Sources/multimarkdown/main.c @@ -55,6 +55,7 @@ #include #include +#include #include #include #include @@ -483,10 +484,16 @@ int main(int argc, char** argv) { // Perform transclusion(s) // Convert to absolute path for first file to enable proper path resolution - char absolute[1025]; - realpath(a_file->filename[0], absolute); +#ifdef PATH_MAX + char absolute[PATH_MAX + 1]; + realpath(a_file->filename[0], absolute); mmd_transclude_source(buffer, folder, absolute, format, NULL, NULL); +#else + char * absolute = realpath(a_file->filename[0], NULL); + mmd_transclude_source(buffer, folder, absolute, format, NULL, NULL); + free(absolute); +#endif // Don't free folder -- owned by dirname }