Re: [PATCH 2/7] lockfile: introduce alloc_lock_file() to avoid valgrind noise

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jonathan Nieder <jrnieder@xxxxxxxxx> writes:

> Junio C Hamano wrote:
>
>> Hmm, I am getting
>> 
>>     cc1: warnings being treated as errors
>>     lockfile.c:189: error: 'optimize' attribute directive ignored
>>     make: *** [lockfile.o] Error 1
>> 
>> from this patch with gcc (Debian 4.3.2-1.1) 4.3.2
>
> Unfortunate.  With gcc 4.5 it works, but that isn't too useful.
>
>> Aren't "struct lock_file" instances supposed to be reachable from the
>> linked list, i.e. lock_file_list?  Why does valgrind consider that
>> elements on that list are leaked in the first place?
>
> At exit, we walk the lock file list and clear it in the process.
> Which suggests a cleaner workaround (thanks!):
>
>  static void remove_lock_file(void)
>  {
> 	pid_t me = getpid();
> +	struct lock_file *p = lock_file_list;
>
> -	while (lock_file_list) {
> -		if (lock_file_list->owner == me &&
> -		    lock_file_list->filename[0]) {
> -			if (lock_file_list->fd >= 0)
> -				close(lock_file_list->fd);
> -			unlink_or_warn(lock_file_list->filename);
> -		}
> -		lock_file_list = lock_file_list->next;
> +	while (p) {
> +		if (p->owner == me &&
> +		    p->filename[0]) {
> +			if (p->fd >= 0)
> +				close(p->fd);
> +			unlink_or_warn(p->filename);
> +		}
> +		p = lock_file_list->next;
> 	}

Heh, shouldn't the last one assign from p->next?
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]