You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
810 B
28 lines
810 B
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
#include <stdlib.h>
|
|
void malloc_free_no_leak(int count) {
|
|
int* e = (int*)malloc(count);
|
|
int* res[] = {e};
|
|
free(e);
|
|
}
|
|
|
|
void constant_index_no_leak_FP(int count) {
|
|
int* e = (int*)malloc(count);
|
|
int* res[] = {e};
|
|
free(res[0]); // pulse creates a new abstract value each time so we
|
|
// don't know that res[0] == e. Needs to be fixed.
|
|
}
|
|
|
|
void symbolic_index_no_leak(int x, int** res) {
|
|
int* e = (int*)malloc(10);
|
|
res[x] = e;
|
|
free(res[x]); // it will know that res[x] == res[x], because the
|
|
// abstract value involved in both array accesses will
|
|
// be the same
|
|
}
|