mirror of
https://github.com/Tha14/toxic.git
synced 2024-11-22 15:53:02 +01:00
Do proper error handling for a few malloc calls
This commit is contained in:
parent
3eac65036c
commit
bf1e1b73fc
15
src/notify.c
15
src/notify.c
@ -489,16 +489,27 @@ void terminate_notify(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
int set_sound(Notification sound, const char *value)
|
|
||||||
|
/*
|
||||||
|
* Sets notification sound designated by `sound` to file path `value`.
|
||||||
|
*
|
||||||
|
* Return true if the sound is successfully set.
|
||||||
|
*/
|
||||||
|
bool set_sound(Notification sound, const char *value)
|
||||||
{
|
{
|
||||||
if (sound == silent) {
|
if (sound == silent) {
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(Control.sounds[sound]);
|
free(Control.sounds[sound]);
|
||||||
|
|
||||||
size_t len = strlen(value) + 1;
|
size_t len = strlen(value) + 1;
|
||||||
Control.sounds[sound] = calloc(len, 1);
|
Control.sounds[sound] = calloc(len, 1);
|
||||||
|
|
||||||
|
if (Control.sounds[sound] == NULL) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(Control.sounds[sound], value, len);
|
memcpy(Control.sounds[sound], value, len);
|
||||||
|
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
|
@ -77,7 +77,7 @@ int box_silent_notify(ToxWindow *self, uint64_t flags, int *id_indicator, const
|
|||||||
int box_silent_notify2(ToxWindow *self, uint64_t flags, int id, const char *format, ...);
|
int box_silent_notify2(ToxWindow *self, uint64_t flags, int id, const char *format, ...);
|
||||||
|
|
||||||
#ifdef SOUND_NOTIFY
|
#ifdef SOUND_NOTIFY
|
||||||
int set_sound(Notification sound, const char *value);
|
bool set_sound(Notification sound, const char *value);
|
||||||
#endif /* SOUND_NOTIFY */
|
#endif /* SOUND_NOTIFY */
|
||||||
|
|
||||||
#endif /* NOTIFY_H */
|
#endif /* NOTIFY_H */
|
||||||
|
@ -209,12 +209,24 @@ VideoDeviceError init_video_devices(void)
|
|||||||
/* Query V4L for capture capabilities */
|
/* Query V4L for capture capabilities */
|
||||||
if (-1 != ioctl(fd, VIDIOC_QUERYCAP, &cap)) {
|
if (-1 != ioctl(fd, VIDIOC_QUERYCAP, &cap)) {
|
||||||
video_input_name = (char *)malloc(strlen((const char *)cap.card) + strlen(device_address) + 4);
|
video_input_name = (char *)malloc(strlen((const char *)cap.card) + strlen(device_address) + 4);
|
||||||
|
|
||||||
|
if (video_input_name == NULL) {
|
||||||
|
close(fd);
|
||||||
|
return vde_InternalError;
|
||||||
|
}
|
||||||
|
|
||||||
strcpy(video_input_name, (char *)cap.card);
|
strcpy(video_input_name, (char *)cap.card);
|
||||||
strcat(video_input_name, " (");
|
strcat(video_input_name, " (");
|
||||||
strcat(video_input_name, (char *)device_address);
|
strcat(video_input_name, (char *)device_address);
|
||||||
strcat(video_input_name, ")");
|
strcat(video_input_name, ")");
|
||||||
} else {
|
} else {
|
||||||
video_input_name = (char *)malloc(strlen(device_address) + 3);
|
video_input_name = (char *)malloc(strlen(device_address) + 3);
|
||||||
|
|
||||||
|
if (video_input_name == NULL) {
|
||||||
|
close(fd);
|
||||||
|
return vde_InternalError;
|
||||||
|
}
|
||||||
|
|
||||||
strcpy(video_input_name, "(");
|
strcpy(video_input_name, "(");
|
||||||
strcat(video_input_name, device_address);
|
strcat(video_input_name, device_address);
|
||||||
strcat(video_input_name, ")");
|
strcat(video_input_name, ")");
|
||||||
|
Loading…
Reference in New Issue
Block a user