X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=java%2Fcom_redhat_et_libguestfs_GuestFS.c;h=f012a4b88adc7ba1694054f5ff7cbc7f9bbb0405;hb=366a86fb6097ab0f704443f0a6ae2addbc3745d5;hp=8f5e35378113eef8221b056d1fdff6e66ea023d9;hpb=aed0fa2c015e56a882fd6d4b759c82df08fc40d7;p=libguestfs.git diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index 8f5e353..f012a4b 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -1381,7 +1381,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1vgcreate volgroup = (*env)->GetStringUTFChars (env, jvolgroup, NULL); physvols_len = (*env)->GetArrayLength (env, jphysvols); - physvols = malloc (sizeof (char *) * (physvols_len+1)); + physvols = guestfs_safe_malloc (g, sizeof (char *) * (physvols_len+1)); for (i = 0; i < physvols_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jphysvols, i); physvols[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -1461,7 +1461,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1sfdisk heads = jheads; sectors = jsectors; lines_len = (*env)->GetArrayLength (env, jlines); - lines = malloc (sizeof (char *) * (lines_len+1)); + lines = guestfs_safe_malloc (g, sizeof (char *) * (lines_len+1)); for (i = 0; i < lines_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jlines, i); lines[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -1610,7 +1610,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1command int i; arguments_len = (*env)->GetArrayLength (env, jarguments); - arguments = malloc (sizeof (char *) * (arguments_len+1)); + arguments = guestfs_safe_malloc (g, sizeof (char *) * (arguments_len+1)); for (i = 0; i < arguments_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jarguments, i); arguments[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -1646,7 +1646,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1command_1lines int i; arguments_len = (*env)->GetArrayLength (env, jarguments); - arguments = malloc (sizeof (char *) * (arguments_len+1)); + arguments = guestfs_safe_malloc (g, sizeof (char *) * (arguments_len+1)); for (i = 0; i < arguments_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jarguments, i); arguments[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -2244,7 +2244,7 @@ Java_com_redhat_et_libguestfs_GuestFS__1debug subcmd = (*env)->GetStringUTFChars (env, jsubcmd, NULL); extraargs_len = (*env)->GetArrayLength (env, jextraargs); - extraargs = malloc (sizeof (char *) * (extraargs_len+1)); + extraargs = guestfs_safe_malloc (g, sizeof (char *) * (extraargs_len+1)); for (i = 0; i < extraargs_len; ++i) { jobject o = (*env)->GetObjectArrayElement (env, jextraargs, i); extraargs[i] = (*env)->GetStringUTFChars (env, o, NULL); @@ -2317,3 +2317,85 @@ Java_com_redhat_et_libguestfs_GuestFS__1pvremove } } +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1set_1e2label + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring jlabel) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + const char *label; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + label = (*env)->GetStringUTFChars (env, jlabel, NULL); + r = guestfs_set_e2label (g, device, label); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + (*env)->ReleaseStringUTFChars (env, jlabel, label); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1get_1e2label + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_get_e2label (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + jr = (*env)->NewStringUTF (env, r); + free (r); + return jr; +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1set_1e2uuid + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jstring juuid) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + const char *uuid; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + uuid = (*env)->GetStringUTFChars (env, juuid, NULL); + r = guestfs_set_e2uuid (g, device, uuid); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + (*env)->ReleaseStringUTFChars (env, juuid, uuid); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1get_1e2uuid + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_get_e2uuid (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + jr = (*env)->NewStringUTF (env, r); + free (r); + return jr; +} +