Existem várias camadas envolvidas aqui que afetam a resposta.
Se você assumir um sistema operacional moderno de memória virtual, não poderá ver os restos de outros dados de processos nas páginas alocadas.
Quando um processo é carregado pela primeira vez, a tabela de páginas é carregada e, potencialmente, quadros de memória real são alocados para essas páginas. No mínimo, a tabela de páginas ou sua tabela suplementar conterá um mapa de toda a memória que o processo pode alocar. É também aqui que a quebra do processo inicial, mencionada acima, é definida.
Embora malloc () possa, se o processo for permitido, fazer com que a interrupção do processo mude, adicionando mais páginas a uma tabela de página de processos (página suplementar) para atender à solicitação, o local em que um processo pode "obter outro" dados de processo está em a camada inferior de memória real.
Em ambos os cenários, um sistema operacional moderno que usa paginação por demanda ou alocação lenta, ainda não está alocando memória física (quadros). O sistema operacional está apenas "fazendo anotações" sobre qual memória virtual para esse processo é considerada válida. A memória real é atribuída apenas quando necessário.
Memória física ou quadros são alocados a um processo quando a página virtual é realizada e mapeada em uma tabela de páginas de processos É aqui que existe o potencial de exposição de dados. Isso acontece durante uma falha de página. A exposição ocorre porque um processo anterior pode estar usando o mesmo quadro e seus dados foram abandonados ou trocados, para liberar espaço para a solicitação de memória física atual. O sistema operacional deve ter cuidado para garantir que os dados do processo solicitante sejam trocados corretamente ou que o quadro seja limpo (zerado) antes de continuar o processo. Isso também é mencionado acima como um problema "antigo, mas resolvido".
Isso torna um pouco irrelevante se a memória de outros processos foi "liberada" ou não. Outros processos "liberados" de memória ainda residem nas páginas atribuídas a esse processo e geralmente não são mapeados até o processo terminar, pois eles serão trocados apenas quando a memória ficar baixa ou caso contrário eles serão despejados. malloc () e free () gerenciam a memória virtual atribuída ao processo no nível (usuário).
Na sua pergunta, seu processo continua solicitando mais e mais memória, em teoria, empurrando todos os outros processos para fora da memória. Na realidade, existem estratégias de alocação de quadros - global e local - que também podem afetar a resposta. É provável que o processo force a falta de memória de suas próprias páginas antes de poder exceder o sistema operacional e todos os outros processos. Embora isso vá além da sua pergunta inicial.
Tudo isso é discutível em um sistema como o MS-DOS. O MS-DOS (e outros sistemas mais simples) não usa memória virtual (por si só) e você pode facilmente cutucar e cutucar outros dados de "processos".
Algumas boas referências, que podem ser mais fáceis de entender do que o código-fonte do Linux, seriam um bom livro de sistemas operacionais, Conceitos de Sistemas Operacionais por Silberscatz, Gavin e Gange ou Design de Sistemas Operacionais por Andrew Tanenbaum. Além disso, algo como Nachos de Berkeley ou Pintos de Stanford são pequenos sistemas operacionais criados para o aprendizado e têm essas mesmas idéias.