Mercurial > hg > release > icedtea7-forest-2.6 > jdk
changeset 9687:b7f790390313
8205709: Proper allocation handling
Reviewed-by: sspitsyn
author | dtitov |
---|---|
date | Wed, 25 Jul 2018 13:39:13 -0700 |
parents | fc0d98b4f146 |
children | 7c556f6c8711 |
files | src/solaris/instrument/FileSystemSupport_md.c src/windows/instrument/FileSystemSupport_md.c |
diffstat | 2 files changed, 47 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/solaris/instrument/FileSystemSupport_md.c Tue Aug 21 11:43:03 2018 +0530 +++ b/src/solaris/instrument/FileSystemSupport_md.c Wed Jul 25 13:39:13 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ * questions. */ +#include <stdio.h> #include <stdlib.h> #include <string.h> @@ -50,6 +51,10 @@ } else { int len = last - path; char* str = (char*)malloc(len+1); + if (str == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } if (len > 0) { memcpy(str, path, len); } @@ -80,6 +85,10 @@ if (n == 0) return strdup("/"); sb = (char*)malloc(strlen(pathname)+1); + if (sb == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } sbLen = 0; if (off > 0) { @@ -128,6 +137,10 @@ len = parentEnd + cn - childStart; if (child[0] == slash) { theChars = (char*)malloc(len+1); + if (theChars == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } if (parentEnd > 0) memcpy(theChars, parent, parentEnd); if (cn > 0) @@ -135,6 +148,10 @@ theChars[len] = '\0'; } else { theChars = (char*)malloc(len+2); + if (theChars == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } if (parentEnd > 0) memcpy(theChars, parent, parentEnd); theChars[parentEnd] = slash; @@ -150,10 +167,13 @@ if (len > 1 && path[len-1] == slash) { // "/foo/" --> "/foo", but "/" --> "/" char* str = (char*)malloc(len); - if (str != NULL) { - memcpy(str, path, len-1); - str[len-1] = '\0'; + if (str == NULL) + { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; } + memcpy(str, path, len-1); + str[len-1] = '\0'; return str; } else { return (char*)path;
--- a/src/windows/instrument/FileSystemSupport_md.c Tue Aug 21 11:43:03 2018 +0530 +++ b/src/windows/instrument/FileSystemSupport_md.c Wed Jul 25 13:39:13 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ * questions. */ +#include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> @@ -66,6 +67,10 @@ } else { int len = (int)(last - path); char* str = (char*)malloc(len+1); + if (str == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } if (len > 0) { memcpy(str, path, len); } @@ -135,6 +140,10 @@ if (off < 3) off = 0; /* Avoid fencepost cases with UNC pathnames */ sb = (char*)malloc(len+1); + if (sb == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } sbLen = 0; if (off == 0) { @@ -261,11 +270,19 @@ if (child[childStart] == slash) { theChars = (char*)malloc(len+1); + if (theChars == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } memcpy(theChars, parent, parentEnd); memcpy(theChars+parentEnd, child+childStart, (cn-childStart)); theChars[len] = '\0'; } else { theChars = (char*)malloc(len+2); + if (theChars == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; + } memcpy(theChars, parent, parentEnd); theChars[parentEnd] = slash; memcpy(theChars+parentEnd+1, child+childStart, (cn-childStart)); @@ -320,10 +337,12 @@ return (char*)path; } else { char* p = (char*)malloc(len+1); - if (p != NULL) { - memcpy(p, path+start, len); - p[len] = '\0'; + if (p == NULL) { + fprintf(stderr, "OOM error in native tmp buffer allocation"); + return NULL; } + memcpy(p, path+start, len); + p[len] = '\0'; return p; } }